I'm using NSOperationQueue's addOperationWithBlock. From within the block, how do I check to see if I'm supposed to cancel the operation? Or access any NSOperation properties/methods?
[myOperationQueue addOperationWithBlock: ^{
while ( /* long running loop */ )
{
// how to determine here if I need to cancel?
// for that matter, access any NSOperation properties/methods?
}
}];
Is the better way to do this to use a NSBlockOperation?
A better solution might be to use NSBlockOperation
and add that to the queue instead of a raw block. You could do something like:
__block NSBlockOperation *operation = [NSBlockOperation blockOperationWithBlock:^{
while(![operation isCancelled]){
//Some long operation
}
}];
[[self queue] addOperation:operation];
This lets you use blocks while giving you a little more control over the operation... and a few more NSOperation
niceties as well (like the ability to add completion blocks, for example).