我正在嘗試使用用Swift編寫的Parse。我能登錄,沒有任何麻煩,但我有告訴我的應用程序,用戶登錄掙扎。在Swift中從Block返回布爾值
我使用logInWithUsernameInBackground,我只是想,如果在日誌中成功返回一個布爾值。
當我使用:
func authenticateUser() -> Bool{
PFUser.logInWithUsernameInBackground(userName.text, password: passwordField.text, block: {
(user,error) in
return error === nil
})
}
我得到的錯誤「布爾不可自由兌換作廢」,這是有道理的。
所以,如果我改變線3閱讀:
(user,error) -> Bool in
我結束了錯誤「在呼籲參數選擇缺少參數」
然而,這種方法不需要選擇參數。
那麼我哪裏錯了?如何根據登錄時是否有錯誤返回一個布爾值?
在一個側面說明,此代碼工作完全正常: VAR錯誤:NSError? PFUser.logInWithUsername(userName.text,密碼:passwordField.text,錯誤:錯誤) 如果(錯誤==無){ 還真 }其他{ 返回假 } 不過控制檯有這樣的警告: 警告:正在主線程上執行長時間運行的操作。 – ArchonLight 2014-12-03 05:51:03
你必須明白logInWithUsernameInBackground是一個* asynchronous *方法,並且你的authenticateUser方法在調用完成閉包之前返回*。 – 2014-12-03 06:15:13