无法访问 [AnyHashable:Any] 类型的值 - Swift 4

索拉布

我试图从类型为 [AnyHashable: Any] 的变量中访问特定值,但是,在访问任何值时出现错误。我已经浏览了有关此问题的互联网,但我没有得到任何具体的解决方案。那么有没有其他方法可以访问它们?请帮助并提前致谢。

我收到错误的函数

func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
        if let messageID = userInfo[gcmMessageIDKey] {
            print("Message ID: \(messageID)")
        }
        //Print full message
        print(userInfo)

        guard let aps = userInfo[AnyHashable("gcm.notification.data")],
            let data = aps["filters"] as! String else { // Getting the error here
                return
        }
        print(aps)
        completionHandler(UIBackgroundFetchResult.newData)
    }

获取有关打印 userInfo 的数据

[AnyHashable("gcm.notification.data"): {"filters":"fjjnbbx zjbxzj","history":"dsfdxf","message":"value1","source":"message source"}]
索拉布

我解决了这个问题,因为我收到的信息类型是 NSString(字符串中的 JSON)而不是 NSDictionary / [String : Any]。我在下面提供了解决我的问题的工作代码 -

if let notificationData = userInfo["gcm.notification.data"] as? NSString {
                var dictionary : NSDictionary?
                if let data = notificationData.data(using: String.Encoding.utf8.rawValue) {
                    do {
                        dictionary = try JSONSerialization.jsonObject(with: data, options: []) as? NSDictionary
                        print("DICTIONARY : \(dictionary)")
                        if let dict = dictionary {
                            print(dict["alert_message"] as? String)
                            // ..... and so on
                        }
                    } catch let error as NSError {
                        print("Error: \(error)")
                    }
                }
            } 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从 '[[AnyHashable : Any]]' 转换为不相关的类型 '[AnyHashable : Any]' 总是失败

来自分类Dev

无法在Swift 3中转换AnyHashable

来自分类Dev

元组类型'(AVAsset?,[AnyHashable:Any]?)的值没有成员'url'

来自分类Dev

Swift:无法将类型“ Any”的值分配给类型“ AnyObject”的值?

来自分类Dev

Swift:无法将类型“ Any”的值分配给类型“ AnyObject”的值?

来自分类Dev

在 Swift 中使用 Objective-C 轻量级泛型类型为类型参数提供 AnyHashable

来自分类Dev

无法在 Swift 4 中将“ViewController”类型的值转换为预期的参数类型“UIButton”

来自分类Dev

获取“无法将类型 'CLLocationDegrees'(又名'Double')的值分配给类型'Int'”错误(Swift 4)

来自分类Dev

SWIFT 4 - 无法转换“UITextField!”类型的值 到预期的参数类型“双”

来自分类Dev

(iOS 10,Swift 3)从CloudKit通知中读取`userInfo`字典:如何将`[AnyHashable:Any]`强制转换为`[String:NSObject]`?

来自分类Dev

无法将 'Swift.Array<Swift.Dictionary<Swift.String, Swift.String>>' () 类型的值转换为 'Swift.Dictionary<Swift.String, Any>' ()

来自分类Dev

无法访问属性值

来自分类Dev

无法访问Cookie值

来自分类Dev

无法访问div值

来自分类Dev

无法访问哈希值

来自分类Dev

无法访问树枝模板 symfony 4 中的布尔值

来自分类Dev

Swift,无法转换类型的值

来自分类Dev

Swift错误:无法访问启动路径

来自分类Dev

Swift错误:无法访问启动路径

来自分类Dev

无法访问 .NET Standard 库的类型

来自分类Dev

无法转换“UIImage”类型的值?到预期的参数类型 '[Any]'

来自分类Dev

无法访问JS对象中的值

来自分类常见问题

Twig多维数组-无法访问值

来自分类Dev

无法访问关联数组值

来自分类Dev

无法访问结构数组中的值

来自分类Dev

无法访问stdClass数组值(PHP)

来自分类Dev

无法访问嵌套formGroup的值

来自分类Dev

无法访问会话php的值

来自分类Dev

无法访问函数返回的值

Related 相关文章

  1. 1

    从 '[[AnyHashable : Any]]' 转换为不相关的类型 '[AnyHashable : Any]' 总是失败

  2. 2

    无法在Swift 3中转换AnyHashable

  3. 3

    元组类型'(AVAsset?,[AnyHashable:Any]?)的值没有成员'url'

  4. 4

    Swift:无法将类型“ Any”的值分配给类型“ AnyObject”的值?

  5. 5

    Swift:无法将类型“ Any”的值分配给类型“ AnyObject”的值?

  6. 6

    在 Swift 中使用 Objective-C 轻量级泛型类型为类型参数提供 AnyHashable

  7. 7

    无法在 Swift 4 中将“ViewController”类型的值转换为预期的参数类型“UIButton”

  8. 8

    获取“无法将类型 'CLLocationDegrees'(又名'Double')的值分配给类型'Int'”错误(Swift 4)

  9. 9

    SWIFT 4 - 无法转换“UITextField!”类型的值 到预期的参数类型“双”

  10. 10

    (iOS 10,Swift 3)从CloudKit通知中读取`userInfo`字典:如何将`[AnyHashable:Any]`强制转换为`[String:NSObject]`?

  11. 11

    无法将 'Swift.Array<Swift.Dictionary<Swift.String, Swift.String>>' () 类型的值转换为 'Swift.Dictionary<Swift.String, Any>' ()

  12. 12

    无法访问属性值

  13. 13

    无法访问Cookie值

  14. 14

    无法访问div值

  15. 15

    无法访问哈希值

  16. 16

    无法访问树枝模板 symfony 4 中的布尔值

  17. 17

    Swift,无法转换类型的值

  18. 18

    Swift错误:无法访问启动路径

  19. 19

    Swift错误:无法访问启动路径

  20. 20

    无法访问 .NET Standard 库的类型

  21. 21

    无法转换“UIImage”类型的值?到预期的参数类型 '[Any]'

  22. 22

    无法访问JS对象中的值

  23. 23

    Twig多维数组-无法访问值

  24. 24

    无法访问关联数组值

  25. 25

    无法访问结构数组中的值

  26. 26

    无法访问stdClass数组值(PHP)

  27. 27

    无法访问嵌套formGroup的值

  28. 28

    无法访问会话php的值

  29. 29

    无法访问函数返回的值

热门标签

归档