2015-06-03 32 views
0

我正在研究涉及并发性为Core data的iOS SDK。 用户的情况是:iOS核心数据并发性和其他后台队列

  1. 应用在主队列调用API SDK's与回调
  2. Core data工人MOC是NSPrivateQueueConcurrencyType。它需要在其队列中创建模型并保存为持久性。
  3. 然后,SDK需要在后台做一些冗长的操作,然后在主队列上运行回调;或
  4. MOC仍然需要更新其队列中的模型并在主队列上运行回调 。

enter image description here

这是我设计的。理论上,它应该起作用。但是,它看起来有点复杂。还有其他解决方案吗?

回答

0

它在实践中可能看起来有点复杂,它可能是最简单,结构最好的方法。

从技术上讲,你可以只用2个队列(真的线程)和NSConfinementConcurrencyType - 假设你只有1个后台线程,你的图是不是100%清楚 - 但它实际上使你的核心数据的工作多一点棘手和不太明显。如果您总是使用私有队列上下文,那么您知道在上下文中操作的所有内容都需要位于该块中,并且很容易看出任何错误在哪里。

如果你要有多个后台线程全部更新上下文,那么你的图是最简单的选择。