我有一个 NSOperation 子类。 我正在覆盖 main 和 ready。 这不是并发操作。
当我调用 [op cancel] 时,操作不会从队列中删除。 我打印出 [op isCancelled] [op isFinished] & [op isConcurrent]..
操作取消:1 操作完成:0 操作并发:0
我做错了什么? 父类(super class)不会处理取消的操作并更改非并发操作的键“isFinished”吗?
最佳答案
如果您覆盖ready
,您还必须覆盖cancel
。抽象类中发生的事情是,当调用 cancel 时,它将操作设置为就绪,以便队列可以调用 start,start 方法检查已取消标志,然后中止操作并设置 isFinished=YES。然后操作队列dealloc的操作。缺一不可。
关于objective-c - NSOperation 子类 isCancelled isFinished isConcurrent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12924037/