gpt4 book ai didi

iphone - NSOperation 取消 : NSInvocationOperation or NSOperation subclass?

转载 作者:搜寻专家 更新时间:2023-10-30 19:45:07 27 4
gpt4 key购买 nike

我有一个相当简单但昂贵的任务需要在后台运行,这是标准的 NSOperation 情况。我还需要确保该操作支持取消并适当停止。鉴于该要求,哪种方法更好:只是将昂贵的方法调用包装在 NSInvocationOperation 中,还是从头开始编写 NSOperation 子类?

到目前为止,这是我的想法。 NSInvocationOperations 是我的第一选择,也是我过去使用的,因为任务非常简单,我不想编写一个包含所有 NSOperation 样板代码的类来执行它。现在让我犹豫的是,在 NSInvocationOperation 中执行的方法似乎真的没有办法检查取消,这不会在我的脑海中引发黑客警报。参见 this question有关上述 hackery 的一些示例。我已经尝试过了,它们确实有效,但它们也让人感到恶心。

如前所述,编写一个 NSOperation 子类对于执行简单的任务来说似乎有点矫枉过正,但毫无疑问,检查取消比我遇到的任何 NSInvocationOperation 都更优雅。

那么,对于那些拥有更多 NSOperations 的人来说,您使用了哪些最成功的结果?有没有我可能错过的使用 NSInvocationOperations 的很好的取消解决方案?如果没有对取消的某种支持,NSInvocationOperations 有用的情况就会急剧下降。

最佳答案

我相信,子类化 NSOperation 是做到这一点的唯一优雅方式。

当我将现有代码重构为多线程时,我倾向于只使用 NSInvocationOperations,这是一个方便的快捷方式。

关于iphone - NSOperation 取消 : NSInvocationOperation or NSOperation subclass?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5344667/

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