类型'any?'的值没有任何成员“valueForKey” - ‘?任何’斯威夫特3
问题描述:
我得到这个错误,类型'any?'的值没有任何成员“valueForKey” - ‘?任何’斯威夫特3
“类型的值在编译时没有成员'valueForKey'“,对于userName,fbID,email和fbLink。
func returnUserDatafromFBGraphRequest(withAuthUID uid: String){
FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, first_name, last_name, email, picture.type(normal), link"]).start(completionHandler: { (connection, result, error) -> Void in
if (error != nil) {
//process error
print("[LoginControl] Error FBSDKgraph request \(error?.localizedDescription)")
} else {
// successful request, do work
let userName = result.valueForKey("name") as! String
let fbID = result.valueForKey("id") as! String
let email = result.valueForKey("email") as! String
let fbLink = result.valueForKey("link") as! String
guard let picture = result.valueForKey("picture") as? NSDictionary,
let pictureData = picture.valueForKey("data") as? NSDictionary,
let pictureURL = pictureData.valueForKey("url") as? String else {
print("[LoginControl] Error getting fb pic url")
return
}
print("[LoginControl] fetched user from fb: \(email)")
答
你要投Any
在更有意义的东西一样[String:Any]
guard let fbData = result as? [String:Any] else { return }
let fbid = fbData["id"]
let email = fbData["email"]