Я хотел бы создать пользовательский агент в Objective-C, который прослушивает уведомления по умолчанию NSDistributedNotificationCenter
. Агент не будет иметь графического интерфейса. Однако когда я создаю приложение Cocoa (я также буду использовать распределенные объекты, которые, как я думаю, есть только в Cocoa) в Xcode, Xcode устанавливает проект как приложение с графическим интерфейсом.
В основной функции я удаляю вызов функции NSApplicationMain(...)
для удаления элементов GUI из приложения. Однако теперь я не могу заставить поток ждать (прослушивать) уведомления, поступающие от NSDistributedNotificationCenter
. Приложение просто запускается и тут же закрывается.
Я рассмотрел возможность использования NSRunLoop
из текущего NSThread
, однако кажется, что NSRunLoop
ждут только NSPort
. Нет никакого упоминания об ожидании NSNotifications
.
NSProxy
иNSDistantObject
и весь этот беспорядок, это в Foundation, а не в AppKit (оба из которых являются Cocoa). Вам не нужен AppKit для распределенных объектов. Тем не менее, вы можете взглянуть на XPC. Это новое в Lion, но в зависимости от того, что вы делаете, это может быть намного проще, чем использование удаленных объектов. - person Jason Coco   schedule 14.12.2011