【发布时间】:2012-09-28 22:11:45
【问题描述】:
或者可能是 Core Data 将保存操作拆分为几个连续的原子步骤?对于我的工作,我必须确保在崩溃后重新访问数据库时,要么所有内容都已保存,要么我已回滚到保存操作之前的状态。我一定不会有一些修改后的 NSObject 被保存但有些没有的情况。
注意:我正在使用以下 SQLite pragma 选项(是否需要任何其他选项来确保原子性?):
[pragmaOptions setObject:@"FULL" forKey:@"synchronous"];
[pragmaOptions setObject:@"1" forKey:@"fullfsync"];
[pragmaOptions setObject:@"WAL" forKey:@"journal_mode"];
【问题讨论】:
-
你知道当你将
-com.apple.CoreData.SQLDebug 1作为参数传递给可执行文件(编辑方案 -> 参数选项卡)时,你可以在控制台中看到 SQL 语句吗? -
谢谢,这很有用!用两个修改后的对象保存后检查日志显示这些是原子提交的。让我们希望即使对几十个修改过的对象也是一样的。
标签: objective-c ios macos sqlite core-data