在Swift 3中检查launchOptions

我已将我的代码转换为swift 3并且已提交到app store。 当他们打开应用程序时,它会在第一时间崩溃。 结果,我检查了我的崩溃日志,并在此行崩溃。

if let myLaunchOptions: NSDictionary = launchOptions as NSDictionary? { 

我的整体代码是这样的。 我知道launchOptions可能是零,甚至可能不是NSDictionary。 这就是为什么我这样检查了它并且在那条线上失败了。 我可以知道用swift 3检查/预防的其他方法吗?

 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { if let myLaunchOptions: NSDictionary = launchOptions as NSDictionary? { let test = myLaunchOptions[UIApplicationLaunchOptionsKey.userActivityDictionary] as! NSDictionary let userActivity = test["UIApplicationLaunchOptionsUserActivityKey"] as! NSUserActivity NSLog("test1:" + String(describing: userActivity)) continueUserActivity(userActivity) } 

我的崩溃日志就在这里。

在此处输入图像描述

您应该检查并获取以下用户活动:

 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { if let userActivityDictionary = launchOptions?[.userActivityDictionary] as? [UIApplicationLaunchOptionsKey : Any], let userActivity = userActivityDictionary[.userActivityType] as? NSUserActivity { continueUserActivity(userActivity) } return true }