我把一个csv文件转换为一个境界文件,我想在我的应用程序中使用它.这是我目前的代码。
func inLibrarayFolder(fileName: String) -> URL {
return URL(fileURLWithPath: NSSearchPathForDirectoriesInDomains(.libraryDirectory, .userDomainMask, true)[0], isDirectory: true)
.appendingPathComponent(fileName)
}
func copyPreBundleDataCompeletely() {
let mainRealmUrl = inLibrarayFolder(fileName: "main.realm")
let bundleUrl = Bundle.main.url(forResource: "treesFull", withExtension: "realm")!
//After launch after fresh install (if main.realm never created)
if (!FileManager.default.fileExists(atPath: mainRealmUrl.path)){
//copy bundled data into writable location compeletely
try! FileManager.default.copyItem(
at: bundleUrl, to: mainRealmUrl)
print(mainRealmUrl)
}
}
在第一次启动时,它创建了一个新的文件,但是这个文件和原来的文件有点不同。
的树对象。
class Tree: Object {
@objc dynamic var id: Int32 = 0
@objc dynamic var br = ""
@objc dynamic var nm1 = ""
@objc dynamic var nm2 = ""
@objc dynamic var nm3 = ""
@objc dynamic var longitude = 0.0
@objc dynamic var latitude = 0.0
// override static func primaryKey() -> String? {
// return "id"
// }
}
我的新文件里好像有两个数据库 如何访问第二个数据库的数据 或者如何正确复制文件?
另外,当我把id设为主键时,会发生什么?很明显,我在原来下载的文件中没有这样的参数,所以我想我需要以某种方式迁移数据... ...
当涉及到导入时,导入的文件必须是一个非常特定的格式,以及一个特定的文件名。
您的境界对象名称是 树,所以导入的文件名需要与
Tree.csv
以及文件的第一行需要与类的属性名相匹配,用逗号隔开。
id,br,nm1...
我建议创建一个很小的测试文件来导入,用3-4行来让它工作。然后,一旦你掌握了,再导入大文件。