RealmSwift保存了多少数据?

时间:2017-04-27 02:32:51

标签: swift realm

这是我第一次在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,那么它们还不在数据库中吗?

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

1 个答案:

答案 0 :(得分:1)

当您将它们放入write transaction

时,只能保存和更新Realm对象

如果您只是创建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"
 }

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