我正在尝试使用用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