加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

处理 NSOpertion 间依赖关系的一种方式

发布时间:2020-12-13 20:02:47 所属栏目:百科 来源:网络整理
导读:我们知道 NSOperationQueue 可以调度 NSOpertion 间的依赖, 虽然可以为 NSOperation 增加 Depends, 但是框架并没有提供方法, 让你可以直接判断依赖关系是否成立。 框架这么设计主要是考虑通用性, Operation 执行的成功与否是业务相关的。 但是在实际应用

我们知道 NSOperationQueue 可以调度 NSOpertion 间的依赖,

虽然可以为 NSOperation 增加 Depends,

但是框架并没有提供方法,

让你可以直接判断依赖关系是否成立。

框架这么设计主要是考虑通用性,

Operation 执行的成功与否是业务相关的。

但是在实际应用中,只有 Opration 依赖的所有操作都执行成功了,

当前的 Operation 执行才有意义。

==============================================================

那么如何才能显式的达到这样的目标呢?

我们可以从 NSOperation 继承下来,对其进行扩展。

在成员变量中增加一个 NSMutableArray,

同时在成员变量中也增加一个 NSNumber(初始值为 NO),

并重写 addDepends,

假设我们继承下来的类叫:XXOperation,

XXOperation 的数组中存的是:XXOperation。

在 addDepends 时,首先调用基类方法,然后向数组中添加我们的XXOperation。

当 XXOperation 执行成功时,将 NSNumber 置为 YES。

当有所依赖的 XXOperation start 时,判断所有的依赖项是否执行成功。

Code Sample:

@interface XXOperation : NSOperation {

NSMutableArray *_xxDepends;

NSNumber *_exeResult;

}

@property (nonautomic,retain)NSMutableArray *xxDepends;

@end

以上只是一个想法,并没有在实际产品代码中应用。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读