Realmswift节省了多少数据



这是我第一次在Swift上与Realm一起工作,即使我阅读了整个领域文档,我似乎也没有理解一些简单而基本的概念。

当您在Realm中创建一个对象类,并且您制作了该类的实例,是否会自动将其保存到领域数据库中?

说我想做的是创建一个包含对象类列表'bar'''''的对象类'foo'

dynamic var objectList: List<bar>

然后,我想用" bar'类的新实例更新列表。我认为更新列表不会创建一个新实例,该实例可以保存在ream中因此,不必要地保存。

换句话说,说alpha,beta和伽玛是" bar'类的实例。

我将创建" foo"类的希腊语实例:

dynamic var objectList = [alpha, beta, gamma]

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

现在,我想更新我的对象列表,以便它包含theta,omega,delta,所有这些都是" bar'类的实例。

现在,

dynamic var objectList = [theta, omega, delta]

所以,现在,我认为希腊语实例已被更新和保存。但是,由于我已经创建了Alpha,Beta和Gamma,所以它们也不在数据库中吗?

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

领域对象仅在将它们放入 write transaction

中保存和更新

如果您只创建Realm类的instance,则可以使用instance,例如normal instance

例如:您的类'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"
 }

,该实例将在数据库上自动更新

最新更新