2016-09-14 1 views
6

こんにちは、私は迅速3に更新しており、エラーを取得しています何のメンバーがありませんSwift 3 - 'Any?'型の値次のコード行のための</p> <blockquote> <p>Value of type 'Any?' has no member 'valueForKey'</p> </blockquote> <p>:「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 

論文エラーの説明は何であるのと、私はそれを固定するためにどのように行くだろうか?

多くの感謝!

EDIT:

全コード:

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 
 
       

ANSWER:

FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, first_name, last_name, email"]).start(completionHandler: { (connection, result, 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

+0

を強制することはありませんNSString、より良いを使用するよりも、純粋な迅速なアプローチを使用するには? – FelixSFD

+1

'result'を指定されていない' Any'より意味のあるものにキャストするかもしれない – vadian

+1

'AnyObjectではなくAnyとしてインポートするので、以前にAnyObjectで動的参照を行っていた場所でエラーが発生する可能性があります.' [here](https ://developer.apple.com/library/content/releasenotes/DeveloperTools/RN-Xcode/Introduction.html)_ctrl + f - > any_ – Zico

答えて

3

あなたが答えを見つけるのにが、そのより良いではなく、あなたはそれが何であるかのタイプ `result`を定義し、どのように、あなたが私たちを見るてくださいすることができアンラップoptionals

FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, first_name, last_name, email"]).start(completionHandler: { (connection, result, 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"] 
関連する問題