В Mac OS X Какао управляется событиями. Под этим я подразумеваю, что каждая вещь управляется пользовательским интерфейсом - пользователь, щелкающий что-либо или перемещающийся по определенной области, приводит к вызову обработчика события. Main просто вызывает NSApplicationMain (), который создает бесконечный цикл до выхода из программы.
А как насчет задач, которые не управляются пользователем? Где бы я поставил задачи, которые должны работать в фоновом режиме, чтобы обеспечить основные функции программы? Например, Photo Booth делает определенные вещи, когда пользователь взаимодействует с пользовательским интерфейсом (то есть переключается на видеокамеру, когда пользователь нажимает на определенную кнопку). Однако Photo Booth также непрерывно извлекает кадры из камеры, чтобы обеспечить видеопоток.
Итак, мой вопрос: куда идет код задач, не связанных с пользовательским интерфейсом? Функция Main () на самом деле невозможна, поскольку мне нужно, чтобы задачи выполнялись в течение всей жизни программы, а не когда она только запускается.
Я работаю в Mac OS X Snow Leopard (хотя я хочу что-то, что работает на всех системах Mac: то есть в Lion OS X) и использую приложение Obj-C Cocoa в Xcode.