2016-09-28 24 views
-2

我使用Facebook的SDK進行登錄,並在我的最終獲取的數據,但未能解決我所面臨的語法的Facebook SDK錯誤標會員

func fetchProfile() { 
    let parameters = ["fields": "email, first_name, last_name, picture.type(large)"] 
    FBSDKGraphRequest(graphPath: "me", parameters: parameters).start(completionHandler: { (connection, user, requestError) -> Void in 

     if requestError != nil { 
      print(requestError) 
      return 
     } 

     var email = user["email"] as? String 
     let firstName = user["first_name"] as? String 
     let lastName = user["last_name"] as? String 

     self.nameLabel.text = "\(firstName!) \(lastName!)" 

     var pictureUrl = "" 

     if let picture = user["picture"] as? NSDictionary, let data = picture["data"] as? NSDictionary, let url = data["url"] as? String { 
      pictureUrl = url 
     } 

    }) 
} 

在行var email = user["email"] as ? String我得到錯誤的相關挑戰的問題鍵入任何?沒有成績單。

+0

http://stackoverflow.com/questions/39516199/type-any-has-no-subscript-members-in-xcode-8-swift-3/39516303#39516303 –

+0

你能打印'user' –

+0

@Mr .UB它力氣解決我的目的 – Rupinder

回答

7

試試這個:

if let dataDict = user as? [String:AnyObject] { 
    var email  = dataDict["email"] as? String 
    let firstName = dataDict["first_name"] as? String 
    let lastName = dataDict["last_name"] as? String 

    //self.nameLabel.text = "\(firstName!) \(lastName!)" 

    var pictureUrl = "" 

    if let picture = dataDict["picture"] as? [String:AnyObject], let data = picture["data"] as? [String:AnyObject], let url = data["url"] as? String { 
     pictureUrl = url 
    } 
} 

你需要轉換的userAny鍵入詞典[String:AnyObject],那麼不僅可以使用標從中提取價值。

+0

更新的代碼。 –

+0

使用未解析的標識符dataDict'if let picture = dataDict [「pic ......' – Rupinder

+0

我認爲你缺少括號,整個代碼應該在'if let'條件之內,我們已經定義了'dataDict' –