NSOperations、依赖和失败的操作

Joh*_*erg 5 nsoperation ios

我已经开始使用 CloudKit 并最终开始使用子类 NSOperation 来处理我的大部分异步内容。

但是,我有两个问题。

  1. 如何将操作标记为失败?也就是说,如果操作 A 失败,我不想运行它的依赖操作。我可以不将其标记为 isFinished 吗?队列中已有的未执行项目会发生什么?

  2. 如果我想要尝试,抓住,最后,推荐的路线是什么。最终目标是让最后一个操作可以显示一些带有成功信息的 UI 或向用户报告错误?

Adn*_*tab 1

isFinished意味着你的操作完成执行,你可以取消一个操作,但这意味着你的操作被取消,甚至可以在不执行操作的情况下完成,如果你想在子类中isCanceled执行 then 后特别想要失败和成功标志,你可以通过调用来检查NSOperation添加isFailure属性并在执行前检查依赖操作,如果 isFailure 设置为 true 则取消该操作。

您可以添加对操作的依赖项并检查状态,如果全部成功,只需更新主线程上的 UI 或报告和错误。

更新 您可以保留一系列相关操作,并且在失败时可以取消这些操作。