我已将我的代码转换为 swift 3,并且已提交到应用商店。当他们打开应用程序时,它会在第一时间崩溃。结果,我检查了我的崩溃日志,它在这一行崩溃了。
if let myLaunchOptions: NSDictionary = launchOptions as NSDictionary? {
我的整体代码是这样的。我知道 launchOptions 可以是 nil,它甚至可能不是 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
}
关于ios - 在 Swift 3 中检查 launchOptions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40112711/