我有一个数据库和数据,我想在应用程序中预加载。在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我已经添加了我的答案,它工作得很好。 –