使用结果对象的 FBSDKGraphRequest 问题
Issue with FBSDKGraphRequest using the result object
我在使用 Facebook SDK 时遇到问题,(swift 4,Xcode 9) 在用户成功登录后,我试图撤回有关用户帐户的一些详细信息,例如他们的电子邮件地址、姓名和照片。
但是下面的代码在这一行给我一个编译器错误
if let email = result["email"] as? String
这是我遇到的错误。
Value of optional type 'Any?' not unwrapped; did you mean to use '!'
or '?'?
这是包含获取用户个人资料信息的代码的完整函数。我已经尝试了多种可选的测试,使用'!'但都会导致编译器错误。
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)
}
}
}
感谢任何帮助。
通常结果可以解释为 swift 字典 [String: Any]。因此,您可以尝试将结果转换为 [String: Any],然后尝试将电子邮件作为字符串。
if let result = result as? [String: Any] {
if let email = result["email"] as? String {
print(email)
}
}
我在使用 Facebook SDK 时遇到问题,(swift 4,Xcode 9) 在用户成功登录后,我试图撤回有关用户帐户的一些详细信息,例如他们的电子邮件地址、姓名和照片。
但是下面的代码在这一行给我一个编译器错误
if let email = result["email"] as? String
这是我遇到的错误。
Value of optional type 'Any?' not unwrapped; did you mean to use '!' or '?'?
这是包含获取用户个人资料信息的代码的完整函数。我已经尝试了多种可选的测试,使用'!'但都会导致编译器错误。
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)
}
}
}
感谢任何帮助。
通常结果可以解释为 swift 字典 [String: Any]。因此,您可以尝试将结果转换为 [String: Any],然后尝试将电子邮件作为字符串。
if let result = result as? [String: Any] {
if let email = result["email"] as? String {
print(email)
}
}