【发布时间】:2015-10-13 10:44:58
【问题描述】:
有没有办法在运行时创建 NSoperation 并将其作为依赖项添加到正在进行且已处于执行状态的操作中?
如果没有,还有其他替代方法可以实现吗?
例如(我需要这个的用例):
根据服务器的响应,我想发起一个新的NSOperation,而网络服务本身是由连接操作驱动的(这已经在进行中)。
现在我希望连接操作仅在此响应驱动 NSOperation 完成后完成。
参考我获取代码的地方:
https://developer.apple.com/sample-code/wwdc/2015/
示例代码:高级 NSOperations
注意:
一个选项是,我总是可以将此 NSOperation 添加为依赖项,如果响应中不存在该响应,则调用完成。但是,我的观点是,如果我没有得到响应,我根本不想调用该操作。
另一种选择是让此 Connection 操作等到该操作完成,然后调用此响应的 finish() 驱动
NSOperation(这是实现解决方案的间接方式)。我试图在运行时执行它的原因是我希望包含
NSOperation的模块可以从我的项目中插入。每当我不想要该模块时..我将删除文件并且它不应该影响系统。
只是想知道是否有人遇到过同样的情况。
【问题讨论】:
-
你可以创建一个 NSBlockOperation 基本上是一个包裹在一个 NSOperation 上的块,还有 NSInvocationOperation。当然,它们确实支持依赖项。
标签: ios swift dependencies nsoperation