在 iOS 中对同一对象上的 NSOperation 进行分组并检测它们何时完成
-
13-12-2019 - |
题
我有一个 iOS 应用程序,其中 5 个 NSBlockOperation 分别生成一个 NSArray 对象,并将其添加到一个共享同步 NSMutableArray 中,该 NSMutableArray 用作 UITableView 数据源。
这些操作是相互独立的,一旦它们完成,我就需要启动 UITableView 数据重新加载。
不幸的是我找不到使用 NSOperation 来做到这一点的方法。我需要使用另一种多线程设计吗?
解决方案
将重新加载数据调用添加到另一个 NSOperation,它具有依赖项(请参阅 addDependency:
)其他五项操作。然后,直到其他部分完成后,它才会被执行。
请务必将 UI 调用包装在到主线程的 GCD 调度中。
来自 NSOperation 参考:
依赖关系是按特定顺序执行操作的便捷方法。您可以使用 addDependency 添加和删除操作的依赖项:并删除依赖关系:方法。默认情况下,具有依赖关系的操作对象只有在其所有依赖操作对象执行完毕后才被视为就绪。然而,一旦最后一个相关操作完成,操作对象就准备好并能够执行。
不隶属于 StackOverflow