为什么在journal_mode DELETE中没有删除Core Data shm文件?

时间:2015-03-25 09:18:35

标签: ios macos sqlite cocoa core-data

我正在使用以下代码来整合我的Core Data sqlite存储文件,其当前包含数据库本身,-wal和-shm文件。我这样做,所以我可以使用NSFileManager将其作为单个文件进行操作。

NSPersistentStoreCoordinator *tmpPSC = [[NSPersistentStoreCoordinator alloc] 
      initWithManagedObjectModel...];

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

NSPersistentStore *persistentStore = [tmpPSC 
   addPersistentStoreWithType:NSSQLiteStoreType configuration:nil 
   URL:storeURL options:options error:NULL];

if (persistentStore) {
   [tmpPSC removePersistentStore:persistentStore error:NULL];
   tmpPSC = nil;
}

然而,在执行上面的代码之后,我看到-wal文件消失了,但-shm文件仍然存在。

知道为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

没关系,在这里找到我的答案:

How to save the content of a MOC to a file, with no -wal and no -shm?

可以安全地删除shm文件,这就是我所做的。