Cocoa 应用程序启动问题

5

我是一名有经验的开发者,新手学习Mac开发,所以我

还有很多空白,我很难找到好的可读性内容。以下是我的一些问题。这些问题非常简单/常规。必须有一个简短、简洁的文档详细说明基本的应用程序引导过程和所有涉及的类。谢谢!

  • "delegate"由XCode生成,包含NSPersistentStoreCoordinator、NSManagedObjectModel和NSManagedObjectContext的实例——请详细说明?
  • 委托声明为"@interface tests_AppDelegate : NSObject {"。为什么缺少协议?我在网上看到有例子有它。
  • 我看到应用程序委托在Interface Builder中被实例化。它在哪里传递给NSApplication实例?

我有点困惑。你是在问关于Mac开发(Cocoa)还是iOS开发(Cocoa Touch)的问题? - Peter Hosey
2个回答

1
那只会发生在使用基于CoreData的应用程序模板时。请阅读Core Data basics。 该协议仅在OS X 10.6中正式化。 在此之前,它是非正式的。 只要委托实现了参考文献中提到的选择器,就会调用该协议。 委托不必明确采用协议。 当然最好这样做。请参阅NSApplicationDelegate reference。 每个条目都有注释: “适用于Mac OS X v10.0及更高版本。 作为Mac OS X v10.6之前的非正式协议的一部分而可用。” 在Interface Builder中,您可以看到代理已分配给文件所有者的“delegate”出口:右键单击文件所有者即可查看。nib文件包含在IB中创建的冷冻对象。当应用程序在初始化过程中读取MainMenu.nib时,它将NSApp指定为文件所有者。 因此,在nib文件中实例化并冻结的应用程序委托被分配给NSAppdelegate。请阅读Nib Files

1
XCode生成的“代理”包含NSPersistentStoreCoordinator、NSManagedObjectModel和NSManagedObjectContext的实例--请详细说明?
这是关于Core Data的内容。
代理声明为"@interface tests_AppDelegate : NSObject {",为什么缺少协议?我在网上看到的示例中都有。
可能是疏忽。AppKit并没有总是有正式的NSApplicationDelegate协议。苹果可能只是从未更新模板。您可以提交错误报告
我看到应用程序代理在Interface Builder中被实例化。它是如何传递到NSApplication实例中的?
右键单击应用程序对象。您会发现它的delegate输出口已连接到代理对象。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接