嗨我已更新到
swift 3并且收到错误:
Value of type ‘Any?’ has no member ‘valueForKey’
对于以下代码行:
let userName : NSString? = result.valueForKey("name") as? NSString let facebookID : NSString? = result.valueForKey("id") as? NSString let firstName : NSString? = result.valueForKey("first_name") as? NSString let lastName : NSString? = result.valueForKey("last_name") as? NSString let email : NSString? = result.valueForKey("email") as? NSString
这些错误的解释是什么?我将如何修复错误?
非常感谢!
编辑:
完整代码:
if((FBSDKAccessToken.current()) != nil){ FBSDKGraphRequest(graphPath: "me",parameters: ["fields": "id,name,first_name,last_name,email"]).start(completionHandler: { (connection,result,error) -> Void in if (error == nil){ let userName : NSString? = result.valueForKey("name") as? NSString let facebookID : NSString? = result.valueForKey("id") as? NSString let firstName : NSString? = result.valueForKey("first_name") as? NSString let lastName : NSString? = result.valueForKey("last_name") as? NSString let email : NSString? = result.valueForKey("email") as? NSString
回答:
FBSDKGraphRequest(graphPath: "me",error) -> Void in if (error == nil){ let data:[String:AnyObject] = result as! [String : AnyObject] let userName : NSString? = data["name"]! as? NSString let facebookID : NSString? = data["id"]! as? NSString let firstName : NSString? = data["first_name"]! as? NSString let lastName : NSString? = data["last_name"]! as? NSString let email : NSString? = data["email"]! as? NSString
虽然你找到了答案,但使用纯粹的快速方法而不是使用NSString更好,最好不要强制打开选项
FBSDKGraphRequest(graphPath: "me",error) -> Void in if (error == nil){ guard let data = result as? [String:Any] else { return } let fbid = data["id"] let username = data["name"] let firstName = data["first_name"]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。