或者可能是 Core Data 将保存操作拆分为几个连续的原子步骤?对于我的工作,我必须确保在崩溃后重新访问数据库时,要么所有内容都已保存,要么回滚到保存操作之前的状态。我一定不会遇到这样的情况,即一些修改后的 NSObject 被保存,而另一些则没有。
注意:我正在使用以下 SQLite pragma 选项(我是否需要其他任何选项来确保原子性?):
[pragmaOptions setObject:@"FULL" forKey:@"synchronous"];
[pragmaOptions setObject:@"1" forKey:@"fullfsync"];
[pragmaOptions setObject:@"WAL" forKey:@"journal_mode"];
最佳答案
是的,Core Data 的-save
是事务性的。要么一切都被保存,要么什么都没有。无论您使用哪家商店,都是如此。
关于objective-c - 使用底层 SQLite 数据库时 [NSManagedObjectContext save] 是原子提交吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12785470/