2

我来自 iPhone 应用程序开发背景。我试图了解应用程序初始化阶段如何在 OS X 应用程序中工作。我觉得令人费解的一件事是,当您最初在 Xcode 4.5.1 中创建应用程序时,它会为您提供一个包含File's Owner对象和Application对象的单个 XIB 文件。

两者似乎都有相似的插座和接口。所以我想知道:

  • 它们指向同一个对象吗?
  • 这个 XIB 和实例在 期间究竟会发生什么NSApplicationNSApplicationMain()
  • 这个 XIB的File's Owner内容是什么?
  • 将插座连接到一个而不是另一个有什么区别?
4

1 回答 1

1

NSApplicationMain 是一个黑盒,你不应该关心它到底做了什么(我也不知道具体,但它做了很多不同的事情)但我们可以确定它直接或间接地读取了应用程序包的 info.plist , 找到 Principle Class 的名称和包含主菜单的 nib 的名称,创建 Principal Class 的实例(NSApplication 或子类),然后反序列化主菜单。

所有笔尖都有一个占位符,用于应用程序的 NSApplication 实例和笔尖的“文件所有者”(取消序列化笔尖的对象)。

由于 NSApplication 实例对主菜单 nib 进行反序列化,因此在这种情况下,应用程序和文件的所有者占位符恰好是同一个对象。无论您将 Outlet 连接到哪个,都将连接到同一个对象。

于 2012-10-24T20:12:44.427 回答