这是我第一次在Swift上使用Realm,即使我阅读了整个Realm文档,我似乎也未能理解一些简单和基本的概念。
在Realm中创建一个Object类,并创建该类的实例时,它会自动保存到Realm数据库中吗?
说我想做的就是创建一个Object类' foo'它包含一个Object类列表' bar'
dynamic var objectList: List<bar>
然后,我想用一个新的&#39; bar&#39;类。 我认为更新List不会创建一个在Ream中保存的新实例,但我担心因为我正在创建新的&#39; bar&#39;进入我的列表的实例,&#39; bar&#39;的所有实例。因此,课程将被不必要地保存。
换句话说,alpha,beta和gamma就是&#39; bar&#39;类。
我将创建一个&#39; foo&#39;的greekLetter实例。 class:
dynamic var objectList = [alpha, beta, gamma]
(事实上,我不确定这是否是在Realm中初始化对象列表的正确方法。如果我错了,请纠正我。)
现在,我想更新我的objectList,使其包含theta,omega,delta,所有这些都是&#39; bar&#39;的实例。类。
现在,
dynamic var objectList = [theta, omega, delta]
现在,我认为greekLetter实例已更新并保存。但是既然我已经创建了alpha,beta和gamma,那么它们还不在数据库中吗?
我将如何删除这些实例?或者他们可以忽略不计?
答案 0 :(得分:1)
当您将它们放入write transaction
如果您只是创建instance
Realm
个班级,则可以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"
}
该实例会自动在数据库中更新