gpt4 book ai didi

swift - RealmSwift 保存了多少数据?

转载 作者:行者123 更新时间:2023-11-28 15:41:30 28 4
gpt4 key购买 nike

这是我第一次在 Swift 上使用 Realm,尽管我通读了整个 Realm 文档,但我似乎无法理解一些简单而基本的概念。

当您在 Realm 中创建一个 Object 类并创建该类的实例时,它会自动保存到 Realm 数据库中吗?

假设我正在尝试创建一个包含对象类“bar”列表的对象类“foo”

dynamic var objectList: List<bar>

然后,我想用“bar”类的新实例更新列表。我认为更新列表不会创建一个保存在 Ream 中的新实例,但我担心因为我正在创建进入我的列表的新“bar”实例,所以“bar”类的所有实例都会因此被不必要地拯救。

换句话说,alpha、beta 和 gamma 是“bar”类的实例。

我将创建一个“foo”类的 greekLetter 实例:

dynamic var objectList = [alpha, beta, gamma]

(事实上,我不确定这是否是在 Realm 中初始化对象列表的正确方法。如果我错了请纠正我。)

现在,我想更新我的 objectList,使其包含 theta、omega、delta,所有这些都是“bar”类的实例。

现在,

dynamic var objectList = [theta, omega, delta]

所以现在,我认为 greekLetter 实例已更新并保存。但是既然我已经创建了 alpha、beta 和 gamma,它们不也已经在数据库中了吗?

我将如何删除这些实例?或者它们可以忽略不计?

最佳答案

只有当你将它们放入write transaction

时,Realm 对象才会被保存和更新

如果你只是创建一个Realm类的实例,你可以像普通实例一样使用那个实例/p>

例如:你有 'foo' 类继承自 'Object'

你创建了一个 foo 的实例

let instance = foo()

'instance' 不会自动保存到数据库,除非您将其保存在write transaction

因为那个实例没有保存在数据库中所以你可以像普通实例一样更新它...例如:

foo.name = "I'm Foo"

保存到数据库

try! realm.write {
realm.add(instance, update: true)
}

现在它保存在你的数据库中......所以从现在开始,你对这个实例所做的任何更改,你都必须放入写事务(没有写事务你不能这样做)

try! realm.write {
foo.name = "I'm Foo Version 2"
}

并且该实例会在数据库中自动更新

关于swift - RealmSwift 保存了多少数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43647687/

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