所以我知道这个问题之前已被多次询问和回答,但我刚刚将我的项目迁移到Swift 3,我在我的代码中得到了大量的这些错误,解析了JSON,我无法找到答案这让我明白了如何解决我的具体问题。
guard let result = try JSONSerialization.jsonObject(with: data!, options: []) as? [String:AnyObject] else {
return
}
guard let responseData = result["Data"] else { return }
guard let userData = responseData["UserProfile"] else { return }
var userProfileFieldsDict = [String: String]()
if let sessionToken = userData!["CurrentSessionToken"] as? NSString {
userProfileFieldsDict["sessionToken"] = String(sessionToken)
}
}
if let sessionToken
行抛出上述错误,但不太确定你应该如何在Swift 3中处理这个错误?有人可以解释并建议最佳实践修复吗?
非常感谢!
答案 0 :(得分:3)
如果responseData["UserProfile"]
也是字典,您可能希望通过说guard let userData = responseData["UserProfile"] as? [String : AnyObject] else { return }
来保护它。我怀疑这会解决你的问题。
作为一个小小的一边,你不需要在你的if中强行解包userData,因为你已经把它打开了。