这是我第一次在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"
}
,该实例将在数据库上自动更新