3

我想将 a 的内容保存MOC到文件myFile.ext中。一切正常,我的数据保存到文件中,但我还必须保存辅助文件:

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

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

如果它们不是必需的,是否可以避免创建它们?

4

2 回答 2

3

正如 CL 所指出的,它们在 WAL 模式下是必需的。要在创建持久存储时禁用日志模式,请传递流动选项。

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

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

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

于 2014-06-18T20:21:26.153 回答
2

这些文件是在数据库处于WAL 模式时创建的(并且是必需的) 。

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

于 2014-06-18T16:54:25.363 回答