取消NSOperation后我该怎么办?当我取消它时,它没有从队列中删除

时间:2012-09-15 09:44:04

标签: iphone objective-c nsoperation

据我所知,当我发送isFinished KVO通知并且isFinished = YES时,NSOperation将从其NSOperationQueue中删除,并且当我发送isCancelled KVO通知时,它不会从其NSOperationQueue中删除。所以在我的取消功能中:

  1. 当操作取消之前,只需返回。

  2. 操作完成后,只需返回即可。

  3. 当NSOperation正在执行时,其队列之前发送了isExecuting KVO通知,因此我只发送isCancelled和isFinished KVO通知,然后其队列将其删除。

  4. 当NSOperation isReady时,它的队列还没有发送isExecuting KVO通知,所以我发送了isExecuting KVO通知,但是我在控制台中遇到了一些错误:去了isFinished = YES而没有被它所在的队列启动。

  5. 我的问题是:当我取消状态准备好的操作时,我该怎么办?我希望它被队列删除。

    顺便说一句,我有一个成员变量来保存操作的状态,我希望取消功能不影响它的值,所以当取消一个状态就绪的操作时,我只是发送isExecuting KVO通知但是isExecuting = NO ,因为状态值已准备就绪。最后,我的代码是:

    enter image description here

    enter image description here

0 个答案:

没有答案