这段代码在Swift 3之前运行.(诅咒Swift 3!)
现在它显示此行的错误Flurry.logEvent(eventName, withParameters: userData!):
无法将'NSMutableDictionary'类型的值转换为预期的参数类型'[AnyHashable:Any]!'
转换userData!以[AnyHashable : Any]产生此错误:
无法将'NSMutableDictionary'类型的值转换为强制中的'[AnyHashable:Any]'类型
func logEvent(_ eventName: String, userData: NSMutableDictionary?) {
// Use <userData> or create new one?
var userData = userData
if userData == nil {
userData = NSMutableDictionary()
}
// Set base properties
userData!.setObject(gUser.tofus.count, forKey: "Num Tofus" as NSCopying)
userData!.setObject(gUser.getLifetimeTofus(), forKey: "Num Lifetime Tofus" as NSCopying)
// Call Flurry
DispatchQueue.main.async {
Flurry.logEvent(eventName, withParameters: userData! as [AnyHashable:Any])
}
}
Run Code Online (Sandbox Code Playgroud)
什么是Swift 3的正确语法?