我正在尝试从我的应用代表中加载userInfo
的{{1}}字典。
然后我需要将application:didReceiveRemoteNotification:userInfo:fetchCompletionHandler
从userInfo
投射到[AnyHashable:Any]
,以便我可以在CloudKit的[String:NSObject]
中使用它。
当我这样做时:
CKNotification:fromRemoteNotificationDictionary
我收到错误:
let ui = userInfo as! [String : NSObject]
有没有更好的方法将'[AnyHashable:Any]' is not convertible to '[String:NSObject]'
转换为合适的类型,还是我处于完全错误的轨道?
答案 0 :(得分:5)
您只需先将其强制转换为NSDictionary
,然后将其转换为[String: NSObject]
。
试试这样:
CKNotification(fromRemoteNotificationDictionary: userInfo as NSDictionary as! [String: NSObject])
答案 1 :(得分:0)
NSString.localizedStringWithFormat("%@",(notification.userInfo as! [String: AnyObject] as! [String : NSObject])["theKeyValue"]!)
这就是我获得字符串的方式。随意纠正它。
答案 2 :(得分:-1)
正如所建议的那样,取消所有强制转换并使用userInfo就足以让Swift 3正确处理。