connectionDidFinishLoading - jak wymusić aktualizację UIView?

Jestem w stanie pobrać plik ZIP z Internetu. Przetwarzanie końcowe jest wykonywane w module connectionDidFinishLoading i działa poprawnie, z wyjątkiem braku aktualizacji elementów UIView. Na przykład ustawiłem statusUpdate.text = @ „Uncompressing file”, ale zmiana ta nie pojawia się, dopóki nie zakończy się połączenie connectionDidFinishLoading. Podobnie obiekty UIProgressView i UIActivityIndicatorView nie są aktualizowane do momentu zakończenia tej metody.

Czy istnieje sposób wymuszenia aktualizacji UIView z tej metody? Próbowałem ustawić [self.view setNeedsDisplay], ale to nie zadziałało. Wygląda na to, że działa w głównym wątku. Wszystkie inne polecenia tutaj działają dobrze - jedynym problemem jest aktualizacja interfejsu użytkownika.

Dzięki!

Aktualizacja: oto kod, który NIE aktualizuje UIVIEW:

-(void)viewWillAppear:(BOOL)animated {
    timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(processUpdate:) userInfo:nil repeats:YES];
    downloadComplete = NO;
    statusText.text = @"";

}

-(void)processUpdate:(NSTimer *)theTimer {
    if (! downloadComplete) {
        return;
    }

    [timer invalidate];
    statusText.text = @"Processing update file."; 
    progress.progress = 0.0;
        totalFiles = [newFiles count];
    for (id fileName in newFiles) {
        count++;
            progress.progress = (float)count / (float)totalFiles;
        // ... process code goes here ...
         }
}

Po zakończeniu procesu processUpdate ustawię downloadComplete = YES. To buduje i uruchamia się bez błędów i działa zgodnie z przeznaczeniem, z wyjątkiem niczego aktualizowanego w UIVIEW, dopóki nie zakończy się proces processUpdate, a następnie wszystko zostanie zaktualizowane jednocześnie.

Dziękujemy za pomoc do tej pory!

questionAnswers(5)

yourAnswerToTheQuestion