所以我知道这个问题之前已经被问过和回答过很多次了,但是我刚刚将我的项目迁移到 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 中处理这个错误?有人可以解释并建议最佳实践修复吗?
非常感谢!
最佳答案
如果 responseData["UserProfile"]
也是一个字典,您可能希望通过说 guard let userData = responseData["UserProfile"] as ? [字符串:AnyObject] else { return }
。我想这会解决您的问题。
顺便说一句,您不需要在 if let 中强制解包 userData,因为您已经在守卫中解包了它。
关于 swift 3 错误 : Type 'Any' has no subscript members,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39922140/