2015-12-05 32 views
0

我的應用程序,用戶可以改變他們的當前用戶名。所以使用解析,我爲下面我的代碼中顯示的當前用戶設置新的用戶名。然後我撥打saveInBackgroundWithBlock保存新的用戶名。但是,我收到了這個錯誤「用戶名已被佔用」。但現在PFUser.currentUser.username設置爲無效新用戶名,即使保存失敗。我打電話fetch,並沒有改變任何東西。我如何更新PFUser.currentUser更新PFUser.currentUser

let user = PFUser.currentUser() 
    user.username = newUsernameText 
    user.saveInBackgroundWithBlock { 
     (success: Bool, error: NSError?) -> Void in 
     if (success) { 
      self.helper.successAlert("Saved!", msg: "Your profile has been updated.") 

     } else { 
      // There was a problem, check error.description 
      self.helper.errorAlert("Error", msg: (error?.localizedDescription)!) 
      PFUser.currentUser().fetch() 
      self.user = PFUser.currentUser() 
      print(user.username) //prints the new username that was invalid 

     } 
    } 
+0

我想,'打印(user.username)'引用您的本地範圍'user' ...怎麼樣'打印(self.user.username)'或'打印(PFUser.currentUser()。用戶名)'? – Alladinian

+0

PFUser.currentUser.username也返回無效的新的用戶名 – learningthings

+0

嘗試用戶[「用戶名」] = newUsernameText –

回答

1

嘗試將用戶名更改爲其他值。您有可能在數據庫中擁有用戶名。的要對此將首先查詢所有現有用戶,然後檢查是否採取或沒有用戶名與if-else聲明的另一種方式。如果它沒有更新它,如果它是拋出警報。乾杯

+0

感謝您的建議,我想,和它的工作,但問題是PFUser.currentUser仍然帶有新的用戶名。無論如何,我可以更新緩存currentUser? – learningthings

+0

試圖註銷用戶,並在一次? –