Вы должны обновлять только элементы пользовательского интерфейса из основного потока.Вы, вероятно, не видите каких-либо изменений в индикаторе прогресса, потому что пытаетесь изменить его из фонового потока.
Очень простая стратегия для этого - вызвать performSelectorOnMainThread
из фонового потока для вызовапростой метод, который обновляет индикатор выполнения в главном потоке.
Например, в вашем методе addData
(в фоновом потоке) вы можете вызвать:
[self performSelectorOnMainThread:@selector(updateProgressBar:) withObject:[NSNumber numberWithFloat:newProgressValue] waitUntilDone:false];
И затем вваш метод updateProgressBar
(который будет выполняться в главном потоке), выполните обновление индикатора выполнения, используя указанные данные:
- (void)updateProgressBar:(NSNumber *)progressValue {
progView.progress = [progressValue floatValue];
}