gpt4 book ai didi

swift - 我的函数第一次总是返回 false

转载 作者:行者123 更新时间:2023-11-30 10:10:30 24 4
gpt4 key购买 nike

这可能是一个有点晦涩的问题,但我似乎无法弄清楚这里发生了什么。我有一个“登录”功能,可以根据 API 检查用户名和密码。由于某种原因,第一次调用此函数会返回 false,但如果我第二次调用该函数,假设我输入了正确的凭据,它会返回正确的 true。

这是函数:

if testLogin(usernameTextField.text!, password: passwordTextField.text!) {
performSegueWithIdentifier("dismissLogin", sender: self)
} else {
let alert = UIAlertView()
alert.title = "Login Problem"
alert.message = "Wrong username or password."
alert.addButtonWithTitle("Dismiss")
alert.show()
}
}

testLogin函数出现在此处;

func testLogin(username: String, password: String) -> Bool {

let jsonString = "{\"username\":\"\(username)\",\"password\":\"\(password)\"}"
let myURL = "http://myurl.com/api/login.php"

let url:NSURL = NSURL(string: myURL)!
let session = NSURLSession.sharedSession()

let request = NSMutableURLRequest(URL: url)
request.HTTPMethod = "POST"
request.cachePolicy = NSURLRequestCachePolicy.ReloadIgnoringCacheData

request.HTTPBody = jsonString.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)
request.addValue("application/json", forHTTPHeaderField: "Content-Type")

let task = session.dataTaskWithRequest(request) {
(
let data, let response, let error) in

guard let _:NSData = data, let _:NSURLResponse = response where error == nil else {
print("error")
return
}

do {
let json:AnyObject? = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers)

if let result = json as? [String: AnyObject] {
if let status = result["Status"] as! Int? {
if status == 200 {
self.loginCheck = true
} else {
self.loginCheck = false
}
}
}
} catch {
print(error)
}
}
task.resume()
return loginCheck
}

抱歉,篇幅太长了。不过,我似乎无法理解为什么第一次调用 testLogin 返回 false,但第二次调用它返回 true。几乎就像该函数调用网站的速度不够快并且返回 false,但是当我第二次调用该函数时,它有时间检查网站吗?

最佳答案

您的方法testLogin不正确。 dataTaskWithRequest 方法是异步的。您需要创建两个回调成功失败(闭包)。如果请求完成,将调用它。看看这个https://github.com/Alamofire/Alamofire .

关于swift - 我的函数第一次总是返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33188367/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com