NSOperationQueueのクラスメソッドを追加して解決しました。共有操作キュー私はこのようNSOperationQueue上のカテゴリとして追加:
// NSOperationQueue+SharedQueue.h
@interface NSOperationQueue (SharedQueue)
+(NSOperationQueue*)sharedOperationQueue;
@end
// NSOperationQueue+SharedQueue.m
@implementation NSOperationQueue (SharedQueue)
+(NSOperationQueue*)sharedOperationQueue;
{
static NSOperationQueue* sharedQueue = nil;
if (sharedQueue == nil) {
sharedQueue = [[NSOperationQueue alloc] init];
}
return sharedQueue;
}
@end
私は、私は本当にする必要がない限り、キューの全体の束を管理する必要はありませんこの方法です。すべてのビューコントローラからの共有キューに簡単にアクセスできます。
私もそれがさらに簡単に、この共有キューに新しい操作を追加できるようにすることNSObjectのにカテゴリを追加しました:このため
// NSObject+SharedQueue.h
@interface NSObject (SharedQueue)
-(void)performSelectorOnBackgroundQueue:(SEL)aSelector withObject:(id)anObject;
@end
// NSObject+SharedQueue.m
@implementation NSObject (SharedQueue)
-(void)performSelectorOnBackgroundQueue:(SEL)aSelector withObject:(id)anObject;
{
NSOperation* operation = [[NSInvocationOperation alloc] initWithTarget:self
selector:aSelector
object:anObject];
[[NSOperationQueue sharedOperationQueue] addOperation:operation];
[operation release];
}
@end
このキューは再びどのように割り当て解除されますか? – fabb