我創建了一個新的核心數據項目並設置了我的核心數據模型。然後我在模擬器中運行它,然後保存上下文。然後我使用Core Data Editor 5打開並查看我的數據庫。我添加並編輯了新的權限,保存了該文件,然後我進入模擬器檢查它是否工作,並且所有內容都已添加並顯示正常。我現在想將這個數據庫添加到我的項目包中,並讓應用程序加載這個bata base作爲它的默認核心數據庫。隨着新的沃爾瑪系統,我似乎無法讓它工作。我想知道如果有人知道如何解決它。我聽說你必須添加所有3個文件(.sqlite,wal,shm),但我不知道在哪裏保存它或通過什麼過程來完成它。如何將預先存在的sqlite文件導入核心數據iOS 7.1
1
A
回答
2
將所有三項添加到您的iOS應用程序作爲資源。然後
NSURL *storeURL = [NSURL fileURLWithPath: [[NSBundle mainBundle] pathForResource:@"myfilename" ofType:@"myfileextension"]];
,並傳遞給你的NSPersistentStoreCoordinator
在調用-addPersistentStoreWithType:configuration:...
。
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator
{
if (_persistentStoreCoordinator != nil) {
return _persistentStoreCoordinator;
}
NSURL *storeURL = [NSURL fileURLWithPath: [[NSBundle mainBundle] pathForResource:@"myfilename" ofType:@"myfileextension"]];
NSError *error = nil;
_persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
if (![_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType
configuration:nil
URL:storeURL
options:@{NSReadOnlyPersistentStoreOption : @YES,
NSSQLitePragmasOption: @{ @"journal_mode" : @"WAL"}}
error:&error]) {
/*
Replace this implementation with code to handle the error appropriately.
*/
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
return _persistentStoreCoordinator;
}
雖然給了你這個片段,但那不是我這樣做的方式,我不知道它會起作用。相反,如果我創建一個靜態數據存儲以用作只讀數據,那麼在創建數據存儲時(在另一個工具或程序中)以及在我的實際iOS應用程序中讀取數據存儲時,我會使用舊日記模式。這意味着更改options:
參數(在創建代碼和讀取代碼上)。
options:@{NSReadOnlyPersistentStoreOption : @YES,
NSSQLitePragmasOption: @{ @"journal_mode" : @"DELETE"}}
http://www.sqlite.org/draft/wal.html「無法打開只讀WAL數據庫」。在http://www.sqlite.org/draft/wal.html#readonly進一步討論。
相關問題
- 1. 核心數據和iCloud添加預先填充的sqlite文件
- 2. 如何將SQLite表導入核心數據(SQLite)
- 3. 如何將預先存在的sqlite文件導入到Core Data中?
- 4. 如何在SQLite文件中保存核心數據
- 5. 預填充.sqlite的核心數據(Swift3)
- 6. 在iOS 5中預先填充核心數據
- 7. 核心數據與預先填充的sqlite3文件
- 8. 將核心數據導入/導出到XML文件
- 9. 將核心數據寫入XML文件
- 10. 核心數據sqlite文件嵌入在我的應用程序?
- 11. 如何將預先存在的sqlite文件放入<Application_Home>/Library /?
- 12. 核心數據sqlite文件增長
- 13. 核心數據或sqlite或plist文件
- 14. 核心數據sqlite文件已損壞
- 15. 如何將預先存在的sqlite數據庫文件從資產複製到數據庫文件夾?
- 16. iOS核心數據到Android SQLite映射
- 17. Xcode-將數據存儲在覈心數據或SQLite中?
- 18. 將核心數據數據庫/ .sqlite文件同步到Dropbox
- 19. 預先緩存核心數據的提取?
- 20. 如何在.NET核心中創建SQLite數據庫文件?
- 21. 將JSON導入到核心數據中
- 22. 如何將sqlite數據庫轉換爲ios中的核心數據
- 23. 寫入預先存在的SQLite數據庫的Android
- 24. Objective-C的 - 核心 - 的iOS 7.1
- 25. 如何使用核心數據模型與內存中的存儲類型使用預填充的SQLite文件?
- 26. iOS背景保存在覈心數據
- 27. 核心數據或個人文件(iOS)
- 28. 核心數據 - 無法首先插入
- 29. 將數據保存在覈心數據(IOS)中時出錯
- 30. 將號碼預先存入文件