FBSDKGraphRequest使用结果对象的问题
我在用户登录成功后遇到了Facebook SDK(swift 4,Xcode 9)的问题,即时尝试回复关于用户帐户的一些细节,例如他们的电子邮件地址,姓名和图片。FBSDKGraphRequest使用结果对象的问题
但下面的代码给的我一个编译器错误在这条线
if let email = result["email"] as? String
这是我得到的错误。
可选类型'Any?'的值?不打开;你的意思是使用'!' 或'?'?
下面是具有获取用户配置文件信息的代码的全部功能。我已经尝试了很多种可选的测试,使用'!'但都会导致编译器错误。
func fetchProfile() { print("in fetch profile")
let parameters = ["fields": "email, first_name, last_name, picture.type(large)"]
FBSDKGraphRequest(graphPath: "me", parameters: parameters).start { (connection, result, error) -> Void in
print("In FBSDKGraphRequest")
print(result)
if error != nil {
print(error as Any)
return
}
if let email = result["email"] as? String
{
print(email)
}
}
}
任何帮助表示赞赏。
回答:
通常结果可以解释为一个快速字典[字符串:任何]。因此,您可以尝试将结果转换为[String:Any],然后尝试将电子邮件作为字符串。
if let result = result as? [String: Any] { if let email = result["email"] as? String {
print(email)
}
}
以上是 FBSDKGraphRequest使用结果对象的问题 的全部内容, 来源链接: utcz.com/qa/265678.html