我更新到了Swift 3,并且在我的项目中使用了Google Analytics(分析)。最初,我有以下代码行:
tracker.send(GAIDictionaryBuilder.createScreenView().build() as [NSObject : AnyObject])
Swift 3转换工具完成后,将其更改为:
tracker?.send(GAIDictionaryBuilder.createScreenView().build() as [AnyHashable: Any])
我收到错误消息:
Cannot convert value of type NSMutableDictionary! to type [AnyHashable:Any] in coercion
我可以通过将行更改为来消除此错误:
tracker?.send(GAIDictionaryBuilder.createScreenView().build() as? [AnyHashable: Any])
但是,这给了我标题中的警告。有人知道为什么会这样吗?这是Swift 3中的错误吗?
最佳答案
我不确定Swift Team(或Apple?)是否认为这是一个错误。但实际上,Swift 3运行时可以使用NSMutableDictionary!
将[AnyHashable:Any]
类型的值转换为as!
类型。
要取消显示警告,请尝试以下操作:
tracker?.send(GAIDictionaryBuilder.createScreenView().build() as NSDictionary as! [AnyHashable : Any])
关于ios - 从NSMutableDictionary转换?到无关类型[AnyHashble:Any]总是失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39904432/