gpt4 book ai didi

swift - 使 BlockOperation 失败,以便其他依赖项不执行

转载 作者:行者123 更新时间:2023-11-28 05:37:41 24 4
gpt4 key购买 nike

在简单的情况下,operation2 依赖于 operation1,但是 operation1 可能会失败,在这种情况下我们不想执行 操作2

是否有可能在 operation1 代码块中传递失败的执行?以便 operation1 无法完成并且 operation2 永远不会被执行和处理?

let operation1 = BlockOperation {

// do smth, which can fail

}

let operation2 = BlockOperation {

}


operation2.addDependency(operation1)

最佳答案

您必须手动取消相关操作。 Operation 有一个 dependencies 数组,其中包含依赖于该操作的所有操作。在 operation1 中检测到失败的位置,循环遍历 dependencies 数组,并对数组中的每个操作调用 cancel()

调用 cancel() 并不总是足以真正取消操作。一般设置是 start() 函数的开头检查 isCancelled bool 值,如果它是 true,则返回而不执行任务。因此操作“执行”但不执行实际工作。如果您重写了 start(),则必须自己执行此操作。

所有这些都需要在 isFinished 设置为 true 之前完成。

关于swift - 使 BlockOperation 失败,以便其他依赖项不执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58094691/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com