У меня есть поле и кнопка, когда вы заполните поле с содержанием, и нажмите кнопку:Swift 3 - задержка индикатор активности или не отвечает
@IBAction func dpSomething(_ sender: UIButton) {
activityIndicator.startAnimating()
activityIndicator.isHidden = false
field.isHidden = true
send.isHidden = true
let url = "http://urlwithjson"
let session = URLSession.shared
DispatchQueue.main.async { [unowned self] in
let task = session.dataTask(with: URL(string: url)!) { (data, response, error) in
if(error==nil){
do {
let jsonData = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as! NSDictionary
if((jsonData["response"] as! Int) == 0){
self.responseL.text = "no results"
}
self.activityIndicator.stopAnimating()
self.responseL.isHidden = false
} catch _ {}
}
}
task.resume()
}
}
при использовании печати он печатает меня почти сразу на JSON, но активности индикатору требуется 10-20 секунд, чтобы исчезнуть, или иногда он не исчезает. Может кто-нибудь мне подскажет почему? А также, когда я меняю текст на этикетке, я получаю сообщение об ошибке в консоли:
Это приложение модифицирует механизм автозапуска из фоновой темы, что может привести к повреждению двигателя и странным сбоям. Это приведет к исключению в будущей версии.
Почему это происходит?
кажется ваш запрос работает сеть на главном потоке, не поощряются –
вместо того, чтобы попытаться 'DispatchQueue.main.async { self.activityIndicator.stopAnimating() self.responseL.isHidden = ложный }' –