gpt4 book ai didi

ios - 点击通知时如何处理 Swift 3 中的启动选项?遇到语法问题

转载 作者:IT王子 更新时间:2023-10-29 05:15:17 24 4
gpt4 key购买 nike

我正在尝试处理启动选项并在点击我在 swift 3 中收到的远程通知时打开特定的 View Controller 。我看到了类似的问题,例如 here ,但对于新的 swift 3 实现没有任何影响。我在 AppDelegate.swift 中看到了一个类似的问题(并且)我在 didFinishLaunchingWithOptions 中有以下内容:

    var localNotif = (launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey] as! String)
if localNotif {
var itemName = (localNotif.userInfo!["aps"] as! String)
print("Custom: \(itemName)")
}
else {
print("//////////////////////////")
}

但是 Xcode 给我这个错误:

Type '[NSObject: AnyObject]?' has no subscript members

我也试过这个:

   if let launchOptions = launchOptions {
var notificationPayload: NSDictionary = launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey] as NSDictionary!

}

我得到这个错误:

error: ambiguous reference to member 'subscript'

无论我以前使用类似的代码通过键从字典中获取值,我都会遇到类似的错误,我必须替换代码并基本上首先安全地打开字典。但这在这里似乎行不通。任何帮助,将不胜感激。谢谢。

最佳答案

Apple 在 Swift 3 和其中之一中进行了大量更改。

编辑:这也适用于 Swift 4。

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
//Launched from push notification
let remoteNotif = launchOptions?[UIApplicationLaunchOptionsKey.remoteNotification] as? [String: Any]
if remoteNotif != nil {
let aps = remoteNotif!["aps"] as? [String:AnyObject]
NSLog("\n Custom: \(String(describing: aps))")
}
else {
NSLog("//////////////////////////Normal launch")
}
}

swift 5:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
//Launched from push notification
guard let options = launchOptions,
let remoteNotif = options[UIApplication.LaunchOptionsKey.remoteNotification] as? [String: Any]
else {
return
}
let aps = remoteNotif["aps"] as? [String: Any]
NSLog("\n Custom: \(String(describing: aps))")

handleRemoteNotification(remoteNotif)
}

有关 LaunchOptionsKey 的更多信息,请阅读 Apple 的 documentation .

关于ios - 点击通知时如何处理 Swift 3 中的启动选项?遇到语法问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40209234/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com