Isn't didFinishLaunchingWithOptions
应该在应用程序第一次开始运行时调用?我在此方法中设置了一个断点,当我在模拟器中运行应用程序时,断点不会被命中,这意味着该方法不会被调用。每当应用程序启动时,我都会尝试从 UserDefaults 加载一些数据,但它被完全忽略。我注意到的一件事是它默认是private func
代替func
。如果我摆脱private
,我收到一条警告“UIApplicationDelegate 中存在几乎类似的可选要求”。有人可以向我解释这是什么意思以及是否private func
与被忽略的方法有什么关系?当我在模拟器中运行我的应用程序时,是否应该调用该方法?如果没有,如何测试应用程序启动后是否正在检索数据?中的所有其他方法AppDelegate
确实会被正常调用(例如,applicationDidEnterBackground
方法工作得很好)。
删除你的方法签名并让 Xcode 自动完成它
我也遇到了我的问题didFinishLaunchingWithOptions
AppDelegate 中的方法不会被调用。我的函数也被标记为私有,看起来像这样
private func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool
问题是这是旧语法!显然,当我将项目从 Swift 2.x 转换为 Swift 3 时,Xcode 没有转换 AppDelegate 中的方法。新的语法看起来像这样
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool
斯威夫特 4.2:
func application( _ application: UIApplication,didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)