2016-03-05 161 views
-2

我在嘗試在Xcode中運行我的項目時收到錯誤。出於某種原因,「userid」函數不會生成,我對編程相當陌生,所以我不知道如何完成這項工作。簡而言之,給我一個錯誤的線路應該允許用戶登錄到他們的Instagram帳戶以使用該應用程序。我得到讀取使用未解析的標識符(swift)

使用未解決的標識符 「用戶ID」

這裏的錯誤是我的代碼:

 if (result.result.isSuccess) { 
     let json = JSON(result.result.value!) 

     if (self.loginType == .Instagram) { 
     if let accessToken = json["access_token"].string, _ = json["user"]["id"].string { 
      print("Logged into Instagram") 
      let user = NSEntityDescription.insertNewObjectForEntityForName("User", inManagedObjectContext: self.coreDataStack.context) as! User 
      user.userID = userID 
      user.accessToken = accessToken 
      user.placesType = "Establishment" 
      user.uberAccessToken = "" 
      self.coreDataStack.saveContext() 
      self.performSegueWithIdentifier("unwindToMapView", sender: ["user": user]) 
     } 
     } else if (self.loginType == .Uber) { 
     if let accessToken = json["access_token"].string { 
      print("Logged into Uber") 
      if let fetchRequest = self.coreDataStack.model.fetchRequestTemplateForName("UserFetchRequest") { 
      do { 
       let results = try self.coreDataStack.context.executeFetchRequest(fetchRequest) as! [User] 
       let user = results.first! 
       user.uberAccessToken = accessToken 
       user.uberAccessTokenExpiryDate = NSDate().dateByAddingTimeInterval((60 * 60 * 24) * 30) 
       user.uberMostRecentRequestID = "" 
       self.coreDataStack.saveContext() 
       self.performSegueWithIdentifier("unwindToUberView", sender: ["user": user]) 
      } catch { 
       self.showAlertWithMessage("Please try again!", title: "Couln't Fetch User", button: "Ok") 
       print("Couldn't fetch user") 
       self.close() 
+2

哪裏應該userID從哪裏來?你無處可以定義它 –

+0

我會假設你需要在你的'if'語句中做'let userID = json [「user」] [「id」]。string'。 – sbarow

+0

用'userID'替換下劃線字符 – vadian

回答

0

你的問題在於

if let accessToken = json["access_token"].string, _ = json["user"]["id"].string { 

你正在將用戶標識分配給_而不是userID。 試試這個:

if let accessToken = json["access_token"].string, userID = json["user"]["id"].string { 
+0

工作,所以應用程序生成,但它每次我輸入我的登錄信息時崩潰,所以我想看看現在的問題,謝謝你的建議 –

+0

如果你有一個新的問題,隨時提出一個新的問題;包括控制檯日誌和相關代碼。尋找強制解包的可選項;) – SmokeDispenser

+0

好的,謝謝!這個平臺對於問題以及他們應該被問到的問題非常敏感,我會牢記這一點。 –