Ich versuche, eine UIActivityIndicatorView anzuzeigen, während Hintergrundverarbeitung stattfindet. Der unten vereinfachte Code funktioniert, wenn ich es im Simulator versuche (die Warnung wird angezeigt) .. aber wenn ich es von Xcode auf mein Telefon lade, wird der Hintergrund-Thread anscheinend überhaupt nicht aufgerufen. (die Warnung wird nie angezeigt)
Irgendwelche Ideen?Threading funktioniert im Simulator aber nicht auf dem 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];
}
Auch für Multithreading lohnt es sich, in NSOperation und NSOperationQueue zu suchen. Es macht Ihr Leben wirklich viel einfacher – nduplessis