2010-07-21 7 views
5

Я опытный разработчик, новая для разработки Mac, так что яCocoa Application Bootstrap Вопросы

Есть еще много пробелов, и мне трудно найти хорошие читаемые материалы. Некоторые из моих вопросов перечислены ниже. Они очень простые/общие. Должен быть короткий, сжатый документ, в котором подробно описывается процесс загрузки базового приложения и все связанные классы. Благодаря!

  • "делегат", который получает порождена XCode содержит экземпляры NSPersistentStoreCoordinator, NSManagedObjectModel и NSManagedObjectContext - детали, пожалуйста?
  • Делегат объявлен "@interface tests_AppDelegate: NSObject {". Почему протокол отсутствует? Я вижу примеры в сети с ним.
  • Я вижу, что делегат приложения создается внутри Interface Builder. Где он передается в экземпляр NSApplication?
+0

Я смущен. Вы спрашиваете о разработке Mac (Cocoa) или iOS (Cocoa Touch)? –

ответ

1

"делегат", который получает порождена XCode содержит экземпляры NSPersistentStoreCoordinator, NSManagedObjectModel и NSManagedObjectContext - детали, пожалуйста?

Это Core Data прочее.

Делегат объявлен "@interface tests_AppDelegate: NSObject {". Почему протокол отсутствует? Я вижу примеры в сети с ним.

Возможно, недосмотр. В AppKit не всегда был формальный протокол NSApplicationDelegate. Возможно, Apple просто не обновляет шаблоны. Вы можете file a bug.

Я вижу, что делегат приложения создается внутри Interface Builder. Где он передается в экземпляр NSApplication?

Щелкните правой кнопкой мыши объект приложения. Вы обнаружите, что его выход delegate подключен к объекту делегата.

1
  1. Это только сложилось, если вы используете шаблон для CoreData на основе приложений. Прочитано Core Data basics.

  2. Протокол был оформлен только в OS X 10.6. Это было сделано неофициально до этого. Пока делегат реализует селектор, упомянутый в ссылке, он вызывается. Делегату не требуется строго принимать протокол. Конечно, лучше сделать это. См. NSApplicationDelegate reference. Каждая запись имеет комментарий

    Доступно в Mac OS X версии 10.0 и выше. Доступен как часть неофициального протокола до Mac OS X v10.6.

  3. В Interface Builder вы видите делегат назначается «делегат» выходе из Владелец файла: щелкните правой кнопкой мыши на файле владелицей, и вы можете видеть, что. Файлы nib содержат лиофилизированные объекты, созданные в IB. Когда приложение читает MainMenu.nib как часть процесса инициализации, оно назначает NSApp в качестве владельца файла. Таким образом, делегат приложения, созданный и замороженный внутри файла nib, присваивается NSAppdelegate. Прочитано Nib Files.

Смежные вопросы