【发布时间】:2013-10-08 20:15:08
【问题描述】:
我们创建了一个操作框架来添加一些在基类中没有的功能(例如跟踪成功/失败)。父操作通常是非并发的,并且可能仅用于管理子操作。子操作通常是并发的(异步下载 xml 和媒体)。
当我们在 iOS 7 上运行我们的应用程序时,将一些操作添加到操作队列中,大约 3/4 的操作完成,然后应用程序似乎挂起。
当我在调试器中暂停应用程序并检查队列中的操作 (sOpQueue.operations) 时,其中许多已准备好运行(isReady 返回 TRUE),但显然它们都没有执行(isExecuting 返回 FALSE ,并且我没有看到任何线程上运行任何操作的证据)。
这是 iOS 7 的新问题。
当我增加或减少并发操作的数量时,行为似乎没有改变。
有没有人对如何确定为什么没有开始准备好的操作有任何建议?
谢谢, 查克
【问题讨论】:
-
我在 Apple 的开发者论坛上发布了同样的问题:devforums.apple.com/message/904947#904947 Apple 支持专家的回应是,最重要的 isReady 是:“远离人迹罕至的道路”。因此,我们正在重新评估我们的方法。
标签: ios nsoperation nsoperationqueue