在Realm中是否应该将多个对象链接在一起?

时间:2016-01-31 17:22:28

标签: ios swift realm

例如我有

class A : Object
{
     let bList List<B> = List<B>()
}

class B : Object
{
    let aList List<A> = List<A>()
}

然后在我的网络部分的某处,我做了类似

的事情
let bItems : [B] = []
let a : A = A()

a.bList.appendContentsOf(bItems)
bItems.forEach({$0.aList.append(a)})

当我保存到Realm时,我是否必须同时编写它们?或者只写&#34; a&#34;应该够了吗?像这样:

let realm : Realm = try Realm()

try realm.write({ () -> Void in
    realm.add(a, update: true)
})

或者像这样:

let realm : Realm = try Realm()

try realm.write({ () -> Void in
    realm.add(a, update: true)
    realm.add(bList, update : true)
})

P.S。特别考虑到我真的需要&#34;更新&#34;特征。这意味着我已经存在A对象和B对象,可能只需要对其属性进行更新。

1 个答案:

答案 0 :(得分:1)

如果您有一个包含子对象列表的Realm Object,则Realm可以使用Object().linkingObjects(_:forProperty:)方法代表您执行反向查找。

例如,要找出A的哪些实例和B的实例是其子代。

let aParentObject = bItem.linkingObjects(A.self, forProperty: "bList")

你当然可以在这两个方向保持一个列表,但这绝对是更多的工作。 ;)