我有以下代码将新实体插入核心数据模型(通过 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];