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

回到顶部