[英]How to open CoreData database file to see saved values
現在我正在使用coredata保存我的數據。 一切正常,但現在我更改了將值保存到數據庫的邏輯。 所以我需要比較一下邏輯更改后相同的值是否已保存在表中。 所以我需要比較表。
所有鏈接都表明coredata創建的數據庫文件的擴展名為.sqlite。 但是在該位置創建的文件是“ persistentStore,persistentStore-shm,persistentStore-wal”,如屏幕截圖所示。
我應該如何打開這些文件以查看表中保存的數據。 提前致謝
- (void)setupDatabase:(void (^)(BOOL))completionHandler
{
NSURL *url = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
url = [url URLByAppendingPathComponent:@"MainDataModel"];
self.db = [[CWUIManagedDocument alloc] initWithFileURL:url];
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
[NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];
self.db.persistentStoreOptions = options;
if(![[NSFileManager defaultManager] fileExistsAtPath:[self.db.fileURL path]])
{
[self.db saveToURL:self.db.fileURL forSaveOperation:UIDocumentSaveForCreating completionHandler:^(BOOL success) {
self.dataManager.db = self.db;
completionHandler(success);
}];
} else if (self.db.documentState == UIDocumentStateClosed) {
[self.db openWithCompletionHandler:^(BOOL success) {
self.dataManager.db = self.db;
completionHandler(success);
}];
}
}
您的sql文件是沒有擴展名的文件。 其他2個文件用於日記模式。
這已經在這個問題中得到了解釋。 Apple在iOS 7上將默認日記模式更改為WAL。
在setupDatabase()
方法中,替換以下行
url = [url URLByAppendingPathComponent:@"MainDataModel"]
同
url = [url URLByAppendingPathComponent:@"MainDataModel.sqlite"]
您必須將持久性存儲類型創建為Sqlite
在終端上運行這些命令,然后在sqlite管理器中打開您的persistentStore
。 這些命令會將WAL文件合並到主sqlite文件中
$ sqlite3 persistentStore
sqlite> PRAGMA wal_checkpoint;
Press control + d
以上鏈接的答案中已經涵蓋了這些步驟: https : //stackoverflow.com/a/43406516/468724
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.