Я уже искал проблему, и единственной подсказкой было решение executeSelectorOnMainThread. Я сделал это, но представление не обновляется, пока работает цикл for. После цикла значение прогресса отображается правильно - но это не точка представления «Прогресс» =)
Цикл for находится внутри контроллера. Я вызываю метод для установки значения прогресса:
CGFloat pr = 0.5; // this value is calculated
[self performSelectorOnMainThread:@selector(loadingProgress:) withObject:[NSNumber numberWithFloat:pr] waitUntilDone:NO];
А это метод загрузки
-(void)loadingProgress:(NSNumber *)nProgress{
NSLog(@"Set Progress to: %@", nProgress);
[[self progress] setProgress:[nProgress floatValue]];
}
Я также попытался поместить метод с циклом for в фоновый поток, используя это в верхней части метода:
if([NSThread isMainThread]) {
[self performSelectorInBackground:@selector(importData) withObject:nil];
return;
}
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
Может быть, кто-нибудь может мне помочь с этим.