2016-09-15 59 views
-4

我已经转换为Swift 3,并在分配给AnyObject JSONSerialization.jsonObject时收到以下错误。有没有人遇到过这个问题,并知道修复?JSONSerialization AnyObject SWIFT3转换问题

enter image description here

+3

发布实际的代码,而不是代码的图片。人们通常希望重现您的代码以尝试排除故障 – Takarii

回答

0

自从上次斯威夫特3更新大部分的返回类型从AnyObject改为Any丧气的是不允许的,所以在这种情况下,你不得不使用显式转换。这意味着您应该制作几个guard声明或使用可选链接if let来定义每个必需的字段。如果可能,考虑使用map,filter,reduce以使您的代码更优雅。例如:

guard方式:

guard let object = try JSONSerialization.jsonObject(with: data) as? [[String: Any]] else { return nil } 
guard let field1 = object[0]["field1_token"] as? [Any] else { return nil } 
//do your thing 

if let方式:

if let object = try JSONSerialization.jsonObject(with: data) as? [[String: Any]], 
let field1 = object[0]["field1_token"] as? [Any] { 
//do your thing 
} 

您可能要检查苹果的文章Working with JSON in Swift

您也可以使用一些JSON解析/映射libriaries的像这些:

SwiftyJSON

Gloss

-1

let object : Any取代let object : AnyObject

由于错误铸造而显示错误。