我有一個數據庫和數據,我想在應用程序中預加載。在swift 3之前,它的工作原理和我遵循本教程:http://www.appcoda.com/core-data-preload-sqlite-database/但是如何爲swift 3加載相同的數據庫? As NSPersistentContainer
is introduced如何加載我的項目中的.sqlite文件?如何使用swift 3預加載數據庫核心數據xcode 8
2
A
回答
7
實際上創建數據庫的默認路徑在swift 3中更改。所以,現在的代碼如下:
func preloadDBData() {
let sqlitePath = Bundle.main.path(forResource: "MyDB", ofType: "sqlite")
let sqlitePath_shm = Bundle.main.path(forResource: "MyDB", ofType: "sqlite-shm")
let sqlitePath_wal = Bundle.main.path(forResource: "MyDB", ofType: "sqlite-wal")
let URL1 = URL(fileURLWithPath: sqlitePath!)
let URL2 = URL(fileURLWithPath: sqlitePath_shm!)
let URL3 = URL(fileURLWithPath: sqlitePath_wal!)
let URL4 = URL(fileURLWithPath: NSPersistentContainer.defaultDirectoryURL().relativePath + "/MyDB.sqlite")
let URL5 = URL(fileURLWithPath: NSPersistentContainer.defaultDirectoryURL().relativePath + "/MyDB.sqlite-shm")
let URL6 = URL(fileURLWithPath: NSPersistentContainer.defaultDirectoryURL().relativePath + "/MyDB.sqlite-wal")
if !FileManager.default.fileExists(atPath: NSPersistentContainer.defaultDirectoryURL().relativePath + "/MyDB.sqlite") {
// Copy 3 files
do {
try FileManager.default.copyItem(at: URL1, to: URL4)
try FileManager.default.copyItem(at: URL2, to: URL5)
try FileManager.default.copyItem(at: URL3, to: URL6)
print("=======================")
print("FILES COPIED")
print("=======================")
} catch {
print("=======================")
print("ERROR IN COPY OPERATION")
print("=======================")
}
} else {
print("=======================")
print("FILES EXIST")
print("=======================")
}
}
現在你可以調用從AppDelegate中的didFinishLaunchWithOptions
方法這個方法,這將預裝我們已經把應用程序數據庫。
+0
Pooja: - 它的工作...你救了我的一天.. tnx .. –
+0
Pooja:你有沒有完成上面的代碼爲iOS 9.0的支持? –
+0
@pooja Shah你已經完成了ios 9.0的代碼嗎?如果有,請幫助我。 – user2931321
相關問題
- 1. Swift核心數據預加載persistentStoreCoordinator:
- 2. 核心數據Xcode 8
- 3. 如何使用核心數據預加載數據
- 4. 預加載核心數據數據庫不工作
- 5. Xcode加載核心數據滯後
- 6. 啓用核心數據Xcode Swift
- 7. IOS - Swift - 核心數據 - 加載值
- 8. SWIFT核心數據加載到pickerview
- 9. 如何從NSPersistentDocument中的核心數據預加載數據?
- 10. Swift 3 xcode 8 firebase數據庫更新數據時出錯
- 11. 在iOS 5中預加載核心數據數據庫並使用UIManagedDocument
- 12. 崩潰的核心數據的Xcode 8
- 13. 核心數據加載
- 14. Swift 3多核心數據保存
- 15. Swift的核心數據指導3
- 16. 更新核心數據對象swift 3
- 17. 核心數據Swift 3關係
- 18. 無法確定核心數據生成的文件路徑(Xcode 8,swift 3)
- 19. 從核心數據加載
- 20. 更好的csv或sqlite預加載數據到核心數據?
- 21. 預加載核心數據庫UIManagedDocument黑色
- 22. 將數據預加載到核心數據中
- 23. 使用預填充數據庫與核心數據
- 24. 使用Django預填充SQLite核心數據的數據庫
- 25. 如何在覈心數據更改時預覽數據庫?
- 26. Swift - 用iCloud核心數據取代核心數據
- 27. Swift 3 Xcode 8集合使用分段控件查看重新加載數據
- 28. 核心數據:數據不存儲到數據庫(SWIFT)
- 29. swift同步數據的核心數據mysql數據庫
- 30. 使用默認值預加載核心數據表
找不到解決方案? –
@LokeshChowdary yes.check我已經添加了我的答案,它工作得很好。 –