[英]How to access dictionary value by key inside array of dictionary on Swift 3?
[英]access value for dictionary key in swift
我在[AnyHashable(“aps”)]中访问密钥警报的值时遇到问题。 我试图将通知警报存储到字符串中,以便我可以执行进一步的操作,但我无法访问警报值。 你们知道我做错了吗?
我是新手,并且试图通过构建我自己的应用程序来弄脏手。 我感谢你的帮助!
func userNotificationCenter(_ center: UNUserNotificationCenter,
willPresent notification: UNNotification,
withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
let userInfo = notification.request.content.userInfo
if let messageID = userInfo[gcmMessageIDKey] {
print("Message ID: \(messageID)")
}
print(userInfo)
completionHandler([.sound, .alert])
}
实际产量:
[
AnyHashable("gcm.message_id"): 0:1559231429586204%16146ddd16146ddd,
AnyHashable("google.c.a.ts"): 1559231429,
AnyHashable("aps"): {
alert = "BBQ event on 6/15";
sound = enabled;
},
AnyHashable("gcm.n.e"): 1,
AnyHashable("google.c.a.udt"): 0,
AnyHashable("gcm.notification.sound2"): enabled,
AnyHashable("google.c.a.e"): 1,
AnyHashable("google.c.a.c_id"): 5464147931275974726
]
预期产量:
"BBQ event on 6/15"
您需要首先获取aps
值作为类型的Dictionary
[AnyHashable:Any]
。 然后从apsDict
获取alert
的值,即
if let apsDict = userInfo["aps"] as? [AnyHashable:Any] {
if let alert = apsDict["alert"] {
print("Alert: \(alert)")
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.