领域 Swift 捆绑包数据
Realm Swift Bundle Data
我将一个 csv 文件转换为一个领域文件,我想在我的应用程序中使用它。
这是我的代码 atm:
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)
}
}
在第一次启动时,它创建了新文件,但该文件与原来的文件有点不同:
original db
copied db
树对象:
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"
// }
}
看起来我在新文件中有 2 个数据库,如何访问第二个数据库或如何正确复制文件?
还有,如果我把id设为主键会怎样?显然我在原始下载文件中没有这样的参数,所以我想我需要以某种方式迁移数据...
导入时,导入的文件必须采用非常特定的格式以及特定的文件名
你的Realm对象名称是Tree,所以导入的文件名需要匹配
Tree.csv
此外,文件的第一行需要匹配 类 属性 名称,逗号分隔
id,br,nm1...
我建议创建一个非常小的测试文件来导入 3-4 行以使其正常工作。然后,一旦你掌握了,然后导入大文件。
我将一个 csv 文件转换为一个领域文件,我想在我的应用程序中使用它。 这是我的代码 atm:
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)
}
}
在第一次启动时,它创建了新文件,但该文件与原来的文件有点不同:
original db copied db
树对象:
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"
// }
}
看起来我在新文件中有 2 个数据库,如何访问第二个数据库或如何正确复制文件?
还有,如果我把id设为主键会怎样?显然我在原始下载文件中没有这样的参数,所以我想我需要以某种方式迁移数据...
导入时,导入的文件必须采用非常特定的格式以及特定的文件名
你的Realm对象名称是Tree,所以导入的文件名需要匹配
Tree.csv
此外,文件的第一行需要匹配 类 属性 名称,逗号分隔
id,br,nm1...
我建议创建一个非常小的测试文件来导入 3-4 行以使其正常工作。然后,一旦你掌握了,然后导入大文件。