Objective-C:UIApplicationMain第四个参数

Posted

技术标签:

【中文标题】Objective-C:UIApplicationMain第四个参数【英文标题】:Objective-C: UIApplicationMain fourth parameter 【发布时间】:2011-09-07 03:19:07 【问题描述】:

对于 main() 中的 UIApplicationMain 函数,谁能告诉我为第四个参数(委托类名)指定 nil 和指定 NSStringFromClass([AppDelegate class]) 之间的区别,正如我在某些代码中看到的那样?

Apple 文档说如果应用程序委托对象位于主 nib 文件中,则指定 nil,那么为什么要使用 NSStringFromClass 函数作为参数?

亲切的问候。

【问题讨论】:

【参考方案1】:

正如你所说,当你将 nil 传递给 UIApplicationMain() 的第四个参数时,它将需要MainWindow.xib。你可以看到这个apple official sample codes,它没有MainWindow.xib,它在运行时决定了它在iPhone或iPad上的xib布局。

【讨论】:

【参考方案2】:

一个可能的区别是,当您不使用 MainWidow.xib 时,您必须将最后一个参数作为字符串。或者我可以说当您以编程方式创建所有视图、控制器和窗口时。因此,最后一个参数会将特定的类注册为应用程序委托。

否则,这是在主窗口 XIB 中完成的。

这还不是全部,但希望它有所帮助....

【讨论】:

以上是关于Objective-C:UIApplicationMain第四个参数的主要内容,如果未能解决你的问题,请参考以下文章

XCTest:[UIApplication sharedApplication] 返回 nil

从后台线程访问 [UIApplication sharedApplication] 可以吗?

Objective-C:从本地通知打开 URL

Objective-C:如何正确处理 iOS 推送通知?

XCode 6.3 在抛出 Objective-C++ 异常时立即引发 SIGABRT

推送通知警告?