Внутри запроса запроса AlamoFire Я пытаюсь обновить индикатор выполнения. Как так:Обновление UIProgressView очень медленно в вызове AlamoFire (async)
alamofireManager.request(.GET, urlPath, parameters: params).responseJSON{(request,response,JSON,error) in
...<code here>...
dispatch_async(dispatch_get_main_queue(), {
NSNotificationCenter.defaultCenter().postNotificationName(LoginVCHideSpinnerAndShowProgressBarName as String, object: self)
})
...<more code here>...
}
По некоторым причинам это занимает несколько секунд, чтобы выполнить, и если я использую dispatch_sync
вместо приложение только, кажется, застревает в этой точке, но интерфейс не замерзает (индикатор активности вертушка держит собирается). Я также хочу отметить, что как только приложение попадает в этот код, он продолжает код после него, как если бы он был выполнен. Затем он выполняется примерно через 6 секунд, как если бы он не вызывался в основной поток.
Я также просто попробовал сделать это вместо использования Уведомления.
dispatch_async(dispatch_get_main_queue(), {
loginVC.progressBar.hidden = false
loginVC.indicator.hidden = true
loginVC.progressBar.setProgress(0.1, animated: true)
})
Это кажется медленнее, чем уведомление.
Я очень озадачен тем, почему это происходит, поскольку я говорю об этом в основной теме. Я также смущен, почему уведомление на самом деле немного быстрее.
Спасибо :) извините за поздний прием был в отпуске – Boid
Не беспокойтесь ... рад, что это помогло! – cnoon