Я пытаюсь отобразить UIActivityIndicatorView во время фоновой обработки. Приведенный ниже упрощенный код работает, когда я пытаюсь его использовать в симуляторе (отображается предупреждение). Но когда я загружаю его на свой телефон из Xcode, фоновый поток, похоже, вообще не вызван. (предупреждение никогда не отображается)
Любые идеи?Threading работает в симуляторе, но не на iPhone
-(void)viewDidLoad {
[self performSelectorInBackground:@selector(runInAnotherThread) withObject:nil];
}
-(void) runInAnotherThread {
NSAutoreleasePool *pool = [ [ NSAutoreleasePool alloc ] init ];
int i;
for(i=0;i < 1000 ;i ++){
NSLog(@"INDEX = %d", i);
}
[self performSelectorOnMainThread : @ selector(backToMainThread) withObject:nil waitUntilDone:NO];
[ pool release ];
}
-(void) backToMainThread {
UIAlertView *completeAlert = [[UIAlertView alloc]
initWithTitle:@"Back to main "
message: @"Success"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[completeAlert show];
[completeAlert release];
}
Кроме того, для многопоточности действительно стоит посмотреть на NSOperation и NSOperationQueue. Это действительно делает вашу жизнь намного проще. – nduplessis