У меня есть подкласс NSOperation, и я хочу сделать что-то вроде этого:Нужно ли мне блокировать блок, который я передаю в setCompletionBlock NSOperation :?
@interface MyOperation : NSOperation...
MyOperation *myOperation = [[MyOperation alloc] init];
[myOperation setCompletionBlock = [^{
[myOperation doSomething]; // Do something with myOperation and other classes captured from original environment
[myOperation setCompletionBlock:nil]; // Manually setting to nil avoid retain cycles;
} copy]; <- is this "copy" needed here?
И вот мой вопрос для этого кода является вопрос название:
мне нужно скопировать Do (Block_copy()) блок, который я передаю setCompletionBlock: или NSOperation сделает это для меня?
Nope. NSOperation должен блокировать его копирование от вас из-за того, как работают атомарные операции. – CodaFi