【发布时间】:2015-10-28 15:35:34
【问题描述】:
我正在使用 swift lib "Sync" from Hyperoslo 将 JSON 用户转换为 Core Data 对象。
let user = JSON.valueForKey("user")
Sync.changes(user , inEntityNamed: "User", dataStack: DataManager.manager, completion: { (response ) -> Void in
print("USER \(response)")
})
但是当用我的 JSON 对象设置这个方法的第一个参数时,我有预编译器错误:
无法转换“AnyObject”类型的值?到预期的参数类型 '[AnyObject]!'
如果将我的第一行替换为...
let user = JSON.valueForKey("user") as! [AnyObject]
...应用程序崩溃并出现此错误:
无法将“__NSCFDictionary”(0x3884d7c8) 类型的值转换为 'NSArray' (0x3884d548)。
如何处理?
已解决感谢@Eric.D的解释
let user = [JSON.valueForKey("user")!]
【问题讨论】:
-
user 是字典而不是数组,所以如果你强制将它转换为它不是的东西,那么它会爆炸。 if let user = JSON.valueForKey("user") as?字典
标签: json swift types casting anyobject