У меня есть операция NSO, которую я хотел заключить с NSAutoreleasePool, например:
- (void) start {
opPool = [[NSAutoreleasePool alloc] init];
if (self.isCancelled) {
[self finish];
}
''' more code ...
}
и
- (void) finish {
[opPool release];
[[NSNotificationCenter defaultCenter] removeObserver:self name:NSManagedObjectContextDidSaveNotification object:nil];
... more finish code here ...
self.state = LSOperationStateFinished;
}
opPool - это iVar.
операция работает без выделения и освобождения NSAutoreleasePool.Но происходит сбой при реализации, как показано.
Я поставил точку останова в обоих методах, чтобы посмотреть, каково описание [NSThread currentThread].То же самое в обоих методах.
Насколько я понимаю из документации по пулам автоматического освобождения, я должен установить один для фоновых потоков, который отделен от основного потока.Вот как я хотел это сделать, но, видимо, это не правильный путь?
Я делаю что-то в корне неправильно?Что я должен сделать, чтобы удовлетворить задокументированное требование?