稍后保存上下文-将指针保存到上下文吗?核心数据

GuybrushThreepwood

我有以下代码将新实体插入Core Data模型(通过Magical Record):

- (void)insertWithData:(NSDictionary *)dataDictionary {

DLog(@"Inserting %@", [_entityClass description]);

NSManagedObjectContext *context = [NSManagedObjectContext contextForCurrentThread];

id entity = [_entityClass createInContext:context];

[entity setValuesFromDictionary:dataDictionary];

if ([entity isKindOfClass:[Syncable class]]) {
    [entity setValue:YesNumber forKey:@"syncedToServer"];
}

[context save];
}

由于此代码在另一个类调用的FOR循环中运行多次,因此,我只想在循环完成后保存上下文以优化性能。

我的问题是做到这一点的最佳方法是什么?我是否应该在此处保存对上下文的引用(例如,在应用程序委托中),然后在调用类中使用此引用进行保存?或者我可以只在调用类中再次调用NSManagedObjectContext contextForCurrent Thread并使用此引用-即在调用类中:

NSManagedObjectContext * context = [NSManagedObjectContext contextForCurrentThread];
[context save];
彼得·科列涅夫(Petro Korienev)

是的,您可以在循环后保存上下文。这比每次迭代保存都好。如果您查看MagicalRecord src,则将看到MR_contextForCurrentThread,如果没有线程的上下文MagicalRecord创建它,则对于相同的线程始终返回相同的上下文。
另外,您不需要传递context [_entityClass createInContext:context],只需[_entityClass MR_createEntity]-它将在当前线程的context中创建

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

保存上下文

来自分类Dev

核心数据子上下文

来自分类Dev

即使保存了核心数据上下文,数据也无法持久保存

来自分类Dev

保存上下文时核心数据编码崩溃

来自分类Dev

核心数据托管对象无法保存上下文(错误134030)

来自分类Dev

核心数据:父上下文更改未合并到子上下文中

来自分类Dev

为NSManagedObject创建实例,但不将其保存到上下文中

来自分类Dev

我们可以将jaxb上下文绑定保存到oxm元数据文件吗?

来自分类Dev

将父对象保存到上下文中时,将子对象添加到表中

来自分类Dev

核心数据背景上下文最佳实践

来自分类Dev

使用privateQueueConcurrencyType在子上下文中保存数据

来自分类Dev

木材 - 将数据扩展到上下文 (WordPress)

来自分类Dev

将多个托管对象上下文与核心数据库一起使用

来自分类Dev

CoreStore 在上下文中创建对象而不保存到数据库

来自分类Dev

如何将多个模型保存到Db上下文(EF)

来自分类Dev

Chrome 上下文菜单扩展:将选定的文本保存到变量中

来自分类Dev

我如何将当前上下文保存到Javasccript中的局部变量

来自分类Java

上下文空指针

来自分类Dev

数据上下文冲突

来自分类Dev

保存上下文后立即获取对象ID

来自分类Dev

WCF回调+保存会话不操作上下文

来自分类Dev

似乎保存图形上下文不起作用

来自分类Dev

MagicalRecord 和 CoreData 保存在不同的上下文错误

来自分类Dev

反应-上下文

来自分类Dev

上下文菜单

来自分类Dev

updateLayer()上下文

来自分类Dev

找不到上下文的DownstreamContext

来自分类Dev

将命名函数绑定到上下文

来自分类Dev

将多个实体升级到上下文代理

Related 相关文章

热门标签

归档