【发布时间】:2014-10-23 02:20:50
【问题描述】:
这是我下面的快速代码。默认情况下,success 变量设置为 false。从外观上看,success 变量永远不会在对象内部更新。因此返回值总是假的。关于我应该如何解决这个问题的任何提示?
更新:我添加了println 以查看逻辑是否通过。
class Auth {
func authUser(email: String, password: String) {
var success : Bool = false
let parameters = [
"user1": [
"adminEmail": email,
"adminPassword": password
]
]
var defaults = NSUserDefaults.standardUserDefaults()
Alamofire.request(.POST, loginURL, parameters: parameters).responseJSON { (_, _, object, error) -> Void in
if(object != nil) {
if(JSON(object!)["success"].asBool == true) {
println("user signed in")
self.authSuccess()
}
}
}
}
func authSuccess() -> Bool {
self.success = true
println(success) // this does not get printed out.
return success
}
}
ViewController.swift
@IBAction func signInButtonPressed(sender: AnyObject) {
var auth = Auth()
auth.authUser(emailTxtField.text, password: pwdTxtField.text)
println(auth.success)
}
刚开始使用 swift。所以任何指针都是有帮助的。
【问题讨论】:
-
如果它从未被设置为 true,那么这意味着您没有通过您的
if语句之一。在您的第一个正文中添加println以找出是哪一个并尝试找出如何从那里修复它。 -
我确实添加了一个 println 并且它正在通过它。后端也认证成功。