NSPersistentStoreCoordinator必须在主线程中创建

时间:2013-09-11 00:45:55

标签: ios

我看到有人在创建NSPersistentStoreCoordinator时添加此行代码:

assert([NSThread isMainThread] == YES); // Create it only on the main thread

如果我不在主线程和差异上创建它会有人告诉我会发生什么。

谢谢!

1 个答案:

答案 0 :(得分:0)

此文本摘自Apple's doc.

使用线程限制来支持并发

建议使用Core Data进行并发编程的模式是线程限制:每个线程必须拥有自己的完全私有的托管对象上下文。

采用这种模式有两种可能的方法:

为每个线程创建单独的托管对象上下文,并共享一个持久性存储协调器。 这是通常推荐的方法。

为每个线程创建单独的托管对象上下文和持久性存储协调器。 这种方法以更高的复杂性为代价提供更高的并发性(特别是如果您需要在不同的上下文之间进行通信)并增加内存使用量。