背景:直到 Xcode 4.2,使用任何模板创建的新项目都将包含 MainWindow.xib,因此将 nil 作为 UIApplicationMain() 的第四个参数传递。从 Xcode 4.2 开始,所有模板都通过将类字符串作为第四个参数传递来实例化应用程序委托,并且不在 xib 中构建应用程序的窗口。
在 4.2 中完成这个设置是微不足道的,当然它按预期工作:创建 xib 设置文件的所有者到 UIApplication 并连接委托,在 Info.plist 中指定它,在 main() 中没有第四个参数。
问题:为什么 Apple 现在鼓励实例化应用程序委托并在代码中构建 UIWindow 而不是“旧方式”?有什么好处?
注意事项:如果您选择使用故事板作为管理 UI 的一种方式,我会期待这种新的模板行为,但如果您取消选中“使用故事板”,我会期待旧的 pass-nil-and-use-MainWindow.xib 模板。
这个问题是在这里以迂回的方式提出的,但是在讨论中答案有点薄。