CoreData 多线程处理大量数据同步时的操作
CoreData是CoCoa中处理数据绑定数据的关键特性,提供完整的对象持久化存储方案。如果你使用sqlite3厌倦了敲打sql语句,CoreData正解决了你这烦恼。sqlite3是CoreData处理的数据类型之一,当你将CoreData和sqlite的结合起来使用的话,你将能开发出强大的数据库应用。
CoreData与多线程 为了在查询数据的时候不让界面停滞,使用多线程是不可避免,一般我们会用thread,串行线程或者并发线程。 coredata与多线程交互的时候,每个线程都必须拥有一个manager context对象,一般有两种方式: 1.每一个线程使用私有的manager context,共享一个 persistent store coordinator 2.每个线程使用私有的manager context和私有的persistent store coordinator 对于这两种方式,我们比较推荐使用第一钟方式,因为使用第二种方式的会消耗我们更多的内存,所以推荐使用第一种。
CoreData里面还带有一个通知NSManagedObjectContextDidSaveNotification,主要监听NSManagedObjectContext的数据是否改变,并合并数据改变到相应context
CoreData与多线程 为了在查询数据的时候不让界面停滞,使用多线程是不可避免,一般我们会用thread,串行线程或者并发线程。 coredata与多线程交互的时候,每个线程都必须拥有一个manager context对象,一般有两种方式: 1.每一个线程使用私有的manager context,共享一个 persistent store coordinator 2.每个线程使用私有的manager context和私有的persistent store coordinator 对于这两种方式,我们比较推荐使用第一钟方式,因为使用第二种方式的会消耗我们更多的内存,所以推荐使用第一种。
CoreData里面还带有一个通知NSManagedObjectContextDidSaveNotification,主要监听NSManagedObjectContext的数据是否改变,并合并数据改变到相应context
- [[NSNotificationCenter defaultCenter]
- addObserverForName:NSManagedObjectContextDidSaveNotification
- object:nil
- queue:nil
- usingBlock:^(NSNotification* note)
- {
- NSManagedObjectContext *moc = self.mainManagedObjectContext;
- if (note.object != moc)
- [moc performBlock:^(){
- [moc mergeChangesFromContextDidSaveNotification:note];
- }];
- }];
- }];
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。