如何将MOC的内容保存到文件中,没有-wal和没有-shm?

时间:2014-06-18 16:50:22

标签: sqlite cocoa core-data wal

我想将MOC的内容保存到文件myFile.ext。一切运作良好,我的数据保存到文件但我还要辅助文件:

  • myFile.ext-wal
  • myFile.ext-shm

这些文件是否符合我的目的(将MOC的内容保存到文件中)?我想只在一个文件中“发送”我的数据。此外,当我再次获取数据时,我只使用URL myFile.ext

如果没有必要,是否可以避免创作?

2 个答案:

答案 0 :(得分:2)

CL指出它们在WAL模式下是必需的。在创建持久存储时禁用日记模式会传递流动选项。

NSDictionary *options = @{NSSQLitePragmasOption: @{@"journal_mode": @"DELETE"};

_coordinator = [_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:url options:options error:&storeError]; 

再次运行应用时,-wal应该会消失,并且可以删除或忽略-shm。您的所有数据都应该在一个sqlite文件中。

答案 1 :(得分:1)

当数据库位于WAL mode时,会创建(并且必须)这些文件。

要禁用WAL模式,请直接打开数据库并执行PRAGMA journal_mode = DELETE