0

題して。PerformSelector:withObject:afterDelayを呼び出した後、NSAutoReleasePoolを呼び出す必要がありますか?

PerformSelector:withObject:afterDelay:はメインスレッドにないので、自動解放プールを追加する必要があると思います。あれは正しいですか?

元:

[self  performSelector:@selector(update) withObject:nil afterDelay:0.1];

-(void) update {
NSAutoReleasePool *pool = [[NSAutoReleasePool alloc] init]; // Is it necessary
...
[pool drain];
}

ありがとう!

4

2 に答える 2

2

いいえ。このメソッドは、実際の実行ループにスケジュールされたNSTimerを使用して、呼び出したのと同じスレッド/実行ループで提供されたセレクターを実行します。あなたはそれについて心配する必要はありません。

于 2012-08-10T06:32:33.107 に答える
0

独自に作成する必要があるの@autoreleasepoolは、一度に多数のオブジェクトを作成して自動リリースする場合だけです。

あなたの場合、あなたのupdateメソッドはあなたがそれを作成したのと同じスレッド/実行ループで呼び出され、メインの下にうまく分類されます@autoreleasepool

NSObjectのドキュメントには、呼び出している特定のメソッドに関する詳細が記載されています。

于 2012-08-10T06:52:26.470 に答える