かなり時間がかかり、バックグラウンドで実行する必要があるタスクがあります。ドキュメントによると、これはNSOperationQueue
. NSOperationQueue
ただし、実際にはその 1 つのタスクにしか使用しないため、 のクラス グローバル コピーを保持したくありません。したがって、自動リリースに設定し、タスクが完了する前にリリースされないことを願っています。できます。
このような:
NSInvocationOperation *theTask = [NSInvocationOperation alloc];
theTask = [theTask initWithTarget:self
selector:@selector(doTask:)
object:nil];
NSOperationQueue *operationQueue = [[NSOperationQueue new] autorelease];
[operationQueue addOperation:theTask];
[theTask release];
なんか気になるけど。これは動作することが保証されていますか? またはoperationQueue
、ある時点で割り当てが解除され、それを引き継ぐ可能性がありますtheTask
か?