UPdate UIProgressView внутри цикла for - PullRequest
0 голосов
/ 25 мая 2011

Я уже искал проблему, и единственной подсказкой было решение 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];  

Может быть, кто-нибудь может мне помочь с этим.

1 Ответ

0 голосов
/ 09 февраля 2012
 CGFloat pr = 0.5; // this value is calculated
[self performSelectorInBackground:@selector(loadingProgress:) withObject:[NSNumber numberWithFloat:pr]];

попробуйте установить значение прогресса

...