Ich schlage vor, dass jede Maßnahme, die möglicherweise die Benutzeroberfläche hängen könnte, sollte in einem Thread platziert werden. Auf diese Weise wird der Vorgang zum Hinzufügen der Unteransicht im Hintergrund ausgeführt, ohne den Hauptthread zu stören.
Sie könnten dies entweder durch NSThread
tun, oder Sie könnten die NSOperationQueue
implementieren.
Erklärung des NSThread ist einfach;
[NSThread detachNewThreadSelector:@selector(myFunction:) toTarget:myObject withObject:argumentObject];
Wo myFunction 'mit dem Namen einer Funktion ersetzt werden sollte, die ‚myObject‘ mit einem Objekt (oder einfach Zustand self
, wenn Sie die aktuelle Klasse wollen den Faden zu handhaben) und ‚argumentObject‘ sollte ersetzt durch irgendein Objekt, das Sie als Argument übergeben möchten; dies kann sein nil
Die Funktion selbst sollte so aussehen;
-(void)myFunction {
NSAutoReleasePool *pool = [[NSAutoReleasePool alloc] init];
// do your thing here...
[pool release];
}
Jeder Thread sollte einen Autorelease-Pool haben.
Ein Hinweis; Wenn Ihre Unteransicht animiert werden soll, versuchen Sie, einen UIAnimation
Block
zu deklarieren