加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift3 – Swift 3 – “Any”类型的值没有会员’valueForKey’

发布时间:2020-12-14 05:23:52 所属栏目:百科 来源:网络整理
导读:嗨我已更新到 swift 3并且收到错误: Value of type ‘Any?’ has no member ‘valueForKey’ 对于以下代码行: let userName : NSString? = result.valueForKey("name") as? NSStringlet facebookID : NSString? = result.valueForKey("id") as? NSStringle
嗨我已更新到 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"]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读