Как зайти в Даркнет?!
25th January, 01:11
6
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
894
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
914
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6086
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4350
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4396
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Почему документация PyObjC так плоха?
Например, http://developer.apple.com/cocoa/pyobjc.html еще на ОС Х Тигр 10.4, 10.5 не Леопард.. И это официальная документация Apple для него..
Официальная страница PyObjC одинаково плоха, http://pyobjc.sourceforge.net/
Это так плохо, что сбивает с толку.. Я рассматриваю возможность изучения Ruby в первую очередь потому, что материал RubyCocoa намного лучше документирован, и есть много достойных учебников ( например, http://www.rubycocoa.com/ ), а также из-за набора инструментов Shoes GUI..
Даже этот японский учебник badly-auto-translated более полезен, чем rest документации, которую я мог бы найти..
Все, что я хочу сделать, это создать довольно простые приложения Python с Cocoa GUI..
Может ли кто - нибудь пролить свет на ужасную документацию или указать мне на некоторые учебники, которые не просто дают вам огромные блоки кода и предполагают, что вы знаете, что делает NSThread.detachNewThreadSelector_toTarget_withObject_("queryController", self, None) ..?
Основная причина отсутствия документации для PyObjC заключается в том, что есть один разработчик (я), и как большинство разработчиков я не особенно люблю писать документацию. Поскольку PyObjC-это побочный проект для меня, я обычно сосредотачиваюсь на работе над функциями и исправлениями ошибок, потому что это более интересно для меня.
Лучший способ улучшить документацию-это добровольно помочь в списке рассылки pyobjc-dev.
В качестве отступления: pythonmac-sig mailinglist (см. google) является отличным ресурсом для получения справки по Python на MacOSX (а не только по PyObjC).
Я согласен, что этот учебник ошибочен, бросая случайный, необъяснимый код прямо перед вашими глазами. Он вводит такие понятия, как пул авторелиза и пользовательские значения по умолчанию, не объясняя, зачем они вам нужны ("пул Авторелиза для управления памятью" - это вряд ли объяснение).
Вот и все…
в основном все, что я хочу сделать, это написать Cocoa приложения без необходимости изучать ObjC.
Я боюсь, что в настоящее время вам понадобится базовое понимание ObjC, чтобы извлечь выгоду из любого языка, который использует Cocoa. PyObjC, RubyCocoa, Nu и другие в лучшем случае являются нишами, и все они были разработаны людьми, близко знакомыми с входами и выходами ObjC и Cocoa.
На данный момент Вы выиграете больше всего, если будете реалистично рассматривать эти мосты как полезные там, где скриптовые языки действительно сияют, а не пытаться построить целое приложение с их помощью. Хотя это было сделано (с LimeChat, я сейчас использую приложение, написанное на RubyCocoa), это редко и, вероятно, будет на некоторое время.
Быть прямолинейным:
Если вы хотите быть эффективным программистом Cocoa, вы должны изучить Objective-C. Конец истории.
Ни Python, ни Ruby не являются заменой объекту-C через их соответствующие мосты. Вам все еще нужно понять цель-C APIs, поведение, присущее NSObject производным классам, и многие другие детали Cocoa.
PyObjC и RubyCocoa-это отличный способ получить доступ к функциям Python или Ruby из приложения Cocoa, включая создание приложения Cocoa в основном - если не полностью-в Python или Ruby. Но успех в нем основан на глубоком понимании Cocoa и цели-C APIs, из которой он состоит.
Ответ Тома и Мартина, безусловно, верен (почти в любом проекте с открытым исходным кодом вы обнаружите, что большинство участников особенно заинтересованы в том, чтобы, ну, развиваться ; не так много в таких полу-связанных вопросах, как документация), но я не думаю, что ваш конкретный вопрос в конце будет хорошо вписываться в документацию PyObjC.
NSThread.detachNewThreadSelector_toTarget_withObject_("queryController", self, None)
NSThread является частью Cocoa API , и как таковой документируется в Apple, включая конкретный метод + detachNewThreadSelector:toTarget:withObject: (я бы связал его, но, по-видимому, stackoverflow имеет ошибки с его разбором). В CocoaDev wiki также есть статья .
Я не думаю, что было бы хорошей идеей для PyObjC попытаться документировать Cocoa, кроме нескольких основных примеров того, как использовать его изнутри Python. Объяснение селекторов также, вероятно, выходит за рамки PyObjC, поскольку они тоже являются особенностью Objective-C, а не конкретно PyObjC.
Я наткнулся на хороший учебник по PyObjC/Cocoa:
http://lethain.com/entry/2008/aug/22/an-epic-introduction-to-pyobjc-and-cocoa/
Все, что я хочу сделать, это создать довольно простые приложения Python с Cocoa GUI.. Может ли кто-нибудь пролить свет на ужасную документацию или указать мне на некоторые учебники, которые не просто дают вам огромные блоки кода и предполагают, что вы знаете, что делает NSThread.detachNewThreadSelector_toTarget_withObject_("queryController", self, None)..?
[...]
в основном все, что я хочу сделать, это написать Cocoa приложений без необходимости изучать ObjC.
Все, что я хочу сделать, это создать довольно простые приложения Python с Cocoa GUI.. Может ли кто-нибудь пролить свет на ужасную документацию или указать мне на некоторые учебники, которые не просто дают вам огромные блоки кода и предполагают, что вы знаете, что делает NSThread.detachNewThreadSelector_toTarget_withObject_("queryController", self, None)..?
[...]
в основном все, что я хочу сделать, это написать Cocoa приложений без необходимости изучать ObjC.
Хотя я в принципе согласен с ответом Соэрена, я бы пошел еще дальше:
Пройдет много времени, если вообще когда-нибудь, прежде чем вы сможете использовать Cocoa без некоторого понимания цели C. Cocoa-это не абстракция, построенная независимо от объекта C, она явно привязана к нему. Вы можете увидеть это в приведенном выше примере строки кода:
NSThread.detachNewThreadSelector_toTarget_withObject_("queryController", self, None)
Это Python способ написания строки Objective C:
[NSThread detachNewThreadSelector:@selector(queryController:) toTarget:self withObject:nil];
Теперь важно отметить, что эта линия может рассматриваться двумя способами: (1) как линия объективного C, или (2) как вызов фреймворков Cocoa. Мы видим его как (1) по синтаксису. Мы рассматриваем его как (2), признавая, что NSThread-это фреймворк Cocoa, который предоставляет набор удобных функций. В этом случае этот конкретный фреймворк Cocoa позволяет нам легко заставить объект начать делать что-то в новом потоке.
Но самое интересное заключается в следующем: фреймворк Cocoa здесь (NSThread) предоставляет нам этот удобный сервис таким образом, что он явно привязан к языку, на котором был написан фреймворк. А именно, NSThread дал нам функцию, которая явно относится к "selectors". Селекторы-это, по сути, название для чего-то фундаментального в том, как работает Objective C.
Так вот в чем загвоздка. Cocoa по своей сути является объективным творением-C, и его создатели построили его с учетом объективного C. Я не утверждаю, что невозможно перевести интерфейс к функциям Cocoa в форму, более естественную для других языков. Просто как только вы меняете фреймворк Cocoa, чтобы перестать ссылаться на "selectors", это уже не совсем фреймворк Cocoa. Это переводная версия. И как только вы начинаете идти по этому пути, я предполагаю, что все становится очень запутанным. Вы пытаетесь идти в ногу с Apple, когда они обновляют Cocoa, возможно, вы попали в некоторые части Cocoa, которые просто не очень хорошо переводятся на новый язык, что угодно. Поэтому вместо этого такие вещи, как PyObjC, предпочитают выставлять Cocoa напрямую, таким образом, чтобы иметь очень ясную и простую корреляцию. Как говорится в документации:
Для того, чтобы иметь без потерь и однозначный перевод между Objective-C сообщениями и Python методами, эквивалент имени метода Python-это просто селектор с двоеточиями, замененными подчеркиванием.
Конечно, это немного уродливо, и это означает, что вам нужно знать что-то об объективном-C, но это потому, что альтернатива, если она действительно существует, не обязательно лучше.
Я вообще ничего не знал о Objective C или Cocoa (но много о Python), но сейчас я пишу довольно сложное приложение в PyObjc. Как я этому научился? Я взял Cocoa программирование для OSX и прошел через всю книгу (довольно быстрый процесс), используя PyObjC. Просто игнорируйте все, что касается управления памятью, и все будет в порядке. Единственный нюанс заключается в том, что очень редко вам приходится использовать декоратор, подобный endSheetMethod (на самом деле я думаю, что это единственный, кого я ударил):
@PyObjcTools.AppHelper.endSheetMethod
def alertEnded_code_context_(self, alert, choice, context):
pass
Том действительно все это говорит. Многие проекты с открытым исходным кодом имеют преданных разработчиков и мало кто заинтересован в документировании. Этому не помогает тот факт, что стойки ворот могут меняться ежедневно, что означает, что документация не только должна быть создана, но и поддерживаться.