gpt4 book ai didi

ios - 如何创建一个预先准备好的数据库,然后将该数据加载到我的 ios swift 应用程序中?

转载 作者:搜寻专家 更新时间:2023-10-30 23:01:56 24 4
gpt4 key购买 nike

我在几个文本文件中有很多数据文本。我如何使用这些文本文件中的数据高效地创建(Realm?)数据库,以便我可以将数据库添加到我的 Xcode 项目并将数据加载到我的应用程序中?

我看过很多关于如何使用用户输入的数据创建 Realm 数据库然后加载它的教程,但是没有关于预制数据库的教程。我不知道 Realm 是否是执行此操作的正确程序,但我看起来确实不错。我已经下载了 Realm Browser,但我只能查看数据库,无法找到如何轻松创建它们。

编辑:

我设法在 Realm 中创建了一个数据库并将其放入我的 xcode 文件夹中。然后我尝试像这样加载它,但 let peoples 不包含文件的数据,我错过了什么:

let path = NSBundle.mainBundle().pathForResource("data", ofType: "realm")
var config = Realm.Configuration(fileURL: NSURL(fileURLWithPath: path!))
config.readOnly = true
let realm = try! Realm(configuration: config)

let peoples = realm.objects(Data)

数据是定义模式的类:

class Data : Object {
dynamic var name = ""
dynamic var country = ""
dynamic var discription = ""
dynamic var image = ""
dynamic var cartoon = ""
dynamic var startYear = 0
dynamic var endYear = 0
}

我正在尝试加载的 Realm 文件的图像: enter image description here

感谢您的帮助!

最佳答案

创建示例模型:

final class ContentModel: Object {
dynamic var title = ""
dynamic var content = ""
dynamic var listName = ""
dynamic var id = 0

override static func primaryKey() -> String? {
return "id"
}
}

创建 Realm 数据库:

let model = ContentModel()
model.id = 1
model.listName = "List Item 1"
model.title = "Title of content 1"
model.content = "Sample Text"

// Get the default Realm
let realm = try! Realm()

// Persist your data easily
try! realm.write {
realm.add(model)
}

使用这一行打印数据库路径:

print(Realm.Configuration.defaultConfiguration.fileURL!)

现在按照这些步骤(由 Realm 解释)

  1. 将 Realm 文件的新压缩副本拖到最终应用的 Xcode 项目导航器中。
  2. 在 Xcode 中转到应用目标的构建阶段选项卡,并将 Realm 文件添加到“复制捆绑资源”构建阶段。
  3. 此时,您的应用可以访问捆绑的 Realm 文件。您可以使用 NSBundle.main.pathForResource(_:ofType:) 找到它的路径。

这是获取捆绑资源的代码:

open class func getBundledRealm() -> Realm {
let config = Realm.Configuration(
// Get the URL to the bundled file
fileURL: Bundle.main.url(forResource: "default", withExtension: "realm"),
// Open the file in read-only mode as application bundles are not writeable
readOnly: true)

// Open the Realm with the configuration
let realm = try! Realm(configuration: config)

return realm
}

测试您的数据库:

let realm = RealmUtils.getBundledRealm()

// Read some data from the bundled Realm
let results = realm.objects(ContentModel.self)

for item in results {
print("Id: \(item.id)")
}

关于ios - 如何创建一个预先准备好的数据库,然后将该数据加载到我的 ios swift 应用程序中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36987179/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com