问题描述
就像上面的问题所说的那样,完全跳过了对 det json 和 decode 的请求!但是如果它在 viewDidLoad 中它就有效......任何人都可以启发我并帮助我如何解决这个问题吗?提前致谢!
class LoginViewController:UIViewController {
@IBOutlet weak var login_id_field: UITextField!
@IBOutlet weak var login_pw_field: UITextField!
var loginData = [LoginData]()
var storeData = [StoreData]()
因此 viewDidLoad()
中的以下部分工作正常,
override func viewDidLoad() {
super.viewDidLoad()
self.hideKeyboardWhenTappedAround()
let param2 = ["login": self.login_id_field.text!]
let url2 = "http://dev.purejoin.com/PJPI/login.php"
print("HI")
DispatchQueue.main.async {
let headers: HTTPHeaders = [
"Accept": "text/html","Content-Type" : "application/x-www-form-urlencoded"
]
AF.request(url2,method: .post,parameters: param2,encoding: URLEncoding.httpBody,headers: headers).responseString { response in
#if DEBUG
let request = response.request
NSLog("Request: \(request!.httpMethod!) - \(request!.url!.absoluteString)\n\(request!.httpBody.map { body in String(data: body,encoding: .utf8) ?? "" } ?? "")")
switch response.result {
case .success(let value):
print("Response with content \(value)")
case .failure(let error):
print("Response with error: \(error as NSError): \(response.data ?? Data())")
}
#endif
}
}
}
但这里下面不起作用.. Dispatchqueue.main.async
只是被跳过了?至少看起来是这样..
@IBAction func login_button(_ sender: Any) {
//Check for email field that is too short or just didn't get any input
if (self.login_id_field.text!.count < 7 ) {
let alert = UIAlertController(title: "Invalid Email",message: "Please Check Your Email",preferredStyle: .alert)
let ok = UIAlertAction (title: "OK",style: UIAlertAction.Style.cancel,handler: nil)
alert.addAction(ok)
self.present(alert,animated: true,completion: nil)
}
//query
else {
let param2 = ["login": self.login_id_field.text!]
let url2 = "http://dev.purejoin.com/PJPI/login.php"
print("HI")
DispatchQueue.main.async {
let headers: HTTPHeaders = [
"Accept": "text/html","Content-Type" : "application/x-www-form-urlencoded"
]
AF.request(url2,headers: headers).responseString { response in #if DEBUG
let request = response.request
NSLog("Request: \(request!.httpMethod!) - \(request!.url!.absoluteString)\n\(request!.httpBody.map { body in String(data: body,encoding: .utf8) ?? "" } ?? "")")
switch response.result {
case .success(let value):
print("Response with content \(value)")
case .failure(let error):
print("Response with error: \(error as NSError): \(response.data ?? Data())")
}
#endif
}
}
//MD5
let md5 = MD5(self.login_pw_field.text!)
print (self.loginData)
if (md5 == String(self.loginData[0].user_password)) {
//OPEN SEGUE
let storyBoard: UIStoryboard = UIStoryboard(name: "Main",bundle: nil)
let vc = storyBoard.instantiateViewController(withIdentifier: "selectStore") as! SelectStoreViewController
self.present(vc,completion: nil)
} else {
let alert = UIAlertController(title: "Wrong Password",message: "Please Check Your Password",preferredStyle: .alert)
let ok = UIAlertAction (title: "OK",handler: nil)
alert.addAction(ok)
self.present(alert,completion: nil)
}
}
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)