iPhone NSThread Помощь - PullRequest
       6

iPhone NSThread Помощь

0 голосов
/ 31 августа 2011

У меня проблемы с моей веткой.В настоящее время представление, вызванное showInstructions, отключено до завершения потока ... как я могу сделать его интерактивным, пока поток продолжается?

Заранее спасибо!

 [self performSelectorOnMainThread:@selector(loadEverything) withObject:self waitUntilDone:YES];


    -(void)loadEverything {    
        NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

        [self performSelector:@selector(showInstructions)];
        [self performSelector:@selector(loadStats)];
        [self performSelector:@selector(animate_sideBTN)];
        [self performSelector:@selector(loadNIBs)];
        [self performSelector:@selector(incrementStats)];

        [NSThread detachNewThreadSelector:@selector(loadMap) toTarget:self withObject:nil];

        [[self.view viewWithTag: 123] removeFromSuperview];
        [pool drain];
        }

Ответы [ 2 ]

1 голос
/ 31 августа 2011

Пожалуйста, попробуйте вызвать - (void) loadEverything в «executeSelectorOnMainThread» и от этого вызова [NSThread detachNewThreadSelector:] для операции, которая не влияет на компоненты пользовательского интерфейса, и [self executeSelector], для которых влияют на компоненты пользовательского интерфейса.

0 голосов
/ 31 августа 2011

Я думаю, вы должны изучить GCD и сделать тот же код внутри блока. Или используйте NSOperation… Избегайте потоков, если это возможно.

...