gpt4 book ai didi

iphone - 暂停NS操作

转载 作者:行者123 更新时间:2023-12-03 18:38:20 28 4
gpt4 key购买 nike

我有 NSOperationQueue ,其中包含一些 NSOperations (特别是 NSInitationOperations)。此操作会进行一些计算并相应地更改 UI 元素的状态(当然,通过 performSelectorOnMainThread:...),通常会使用动画。

我的 UI 有 UINavigationViewController 和一些用于导航到其他 View 的按钮。因此,用户可以离开当前 View ,而计算/动画仍在进行中。我需要的是以某种方式停止这种情况,直到用户返回到当前 View 。

我发现的唯一解决方案是创建一些线程安全的 bool 标志 - 并在所有线程中检查它(例如: while !flag sleep_for_some_time;)。还有更好的吗?

最佳答案

这个问题有点模糊,所以在不知道所有正在运行的代码的情况下很难说。话虽如此,我可以通过以下方式解决这个问题:

选项 1. 在 NSOperation 的子类中,添加您自己的原子 KVO 属性“isPaused”。在操作本身中,观察该属性并在其发生变化时进行相应处理。

选项 2. 您是否曾经暂停过操作队列本身?如果是这样,请考虑在操作中观察该属性,并且如果该值发生变化,每个操作都可以独立采取操作。

选项3.取消队列中的所有操作,如果 View 再次出现,只需重新启动新操作即可。

不过,总的来说,没有什么 Elixir 可以暂停已经在进行的操作。你必须自己烘焙解决方案。不过伤害应该不会太严重。

关于iphone - 暂停NS操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3667060/

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