我有一个登录按钮,它是http get服务,我运行一个弹出警报,等待用户点击按钮时等待,并在获取数据时将其关闭。
但是有时候加载警报很糟糕。可以在iPhone 5s上测试它,但是可以在模拟器上正常工作。我在做什么错了??
IF
popalert变量被声明为全局
这是等待中的弹出警报:
@IBAction func loginButton(_ sender: Any) {
phone=phoneText.text!
if (validation(phone: phone)){
popUpLoading()
guard let url=URL(string: address+"uSers/checkUser/\(phone)") else{return}
print(url)
var requst=URLRequest(url: url)
requst.httpMethod="GET"
URLSession.shared.dataTask(with: requst, completionHandler: { (data, response, error) in
if let response=response{
//print(response)
}
if let data=data{
do{
let json=try? JSONSerialization.jsonObject(with: data, options:JSONSerialization.ReadingOptions.mutableLeaves) as! [String:Any]
print("jsom : ",json)
DispatchQueue.main.async {
self.popalert.dismiss(animated: true, completion: {
let data=json?["data"] as! String
print("data : ",data)
}
}
答案 0 :(得分:1)
您调用了dismiss函数,
(self.popalert.dismiss(动画:true,完成:{)
在响应调用中。因此,仅当您从URL获得正确的响应时,警报视图才会被隐藏。
您应该在两种情况下都隐藏警报视图
-因此,对else
语句使用if
条件并关闭alertView