objective-c - NSOperation 子类 isCancelled isFinished isConcurrent

标签 objective-c

我有一个 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/

相关文章:

iphone - Objective-c 现代运行时在接口(interface) block 中同时使用属性和 ivars

objective-c - 在加载主应用程序 View 之前获取一些设备信息

iphone - 替换运行时从 XIB 加载的 UIImage 的内容

iphone - 是 self 释放,释放的实际对象吗?

ios - 启用/禁用 UIButton 取决于 UITextField 中文本的长度

ios - 为什么用 NSString *str1 = [[NSString alloc]init]; 分配两个字符串有相同的地址吗?

ios - 使用UIWebview禁用IOS应用程序中的缓存

objective-c - 我可以导入和使用 Objective C 中的 Stack 类吗?

ios - 相机在 IOS 中不工作

objective-c - 如何避免 UIView 触摸手势重叠