多线程下处理Core Data操作

注意:这篇文章在写的时候,已经有更好的方法产生了。 

注意:可以用线程(NSThread),GCD,或者OperationQueue 来操作。

 

用线程禁闭来支持并发

每个线程必须有自己的managed object context。这里有两个可能的模式。

1.每个线程创建一个managed object context,共享一个persistent store coordinator。这是推荐的模式

2.每个线程有单独的manged object context,和persistent store coordinator。

这种模式开支比较大

 

如果用的是OperationQueue,在main或者start方法里面创建context。

如果用了线程紧闭,不能在线程间传递managed objects或者managed object contexts。

如果让它在线程间的context创建,就会超越线程的边界。

 - 通过objectID来查找object

 - 执行一个fetch来找到context

这样可以在本地的context来找到本地版本的managed object。

可以用NSFetchRequest提供的方法来穿越线程更容易。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。