2017-04-13 76 views
1

我目前正在努力研究构建我的领域对象以便于检索的最佳方法。Realm Swift逆向关系多对多

我有2个对象tagsobject有多个tags,每个可能包含许多object。同样每个object可以有多个与之相关tag

理想选择单个标签应检索所有object有至少一个标记(但可以明显地有多个)

将我的模型被指定为

class Tag: Object { 
     let objects = List<Object>() 
    } 

    class Object { 
     let tags = List<Tag>() 
    } 

我不认为我需要在这里使用反比关系还是应该?选择一个类别我应该能够检索所有对象引用的列表,不管怎样,但是维护和更新对象的引用在这里可能很困难?即用户选择标签'A',然后更新第一个对象以包含标签'B'我需要更新标签A列表中的对象,然后将新项目添加到标签'B'的列表中,最后更新实际的对象本身在标签列表中包含标签'B'。

只是要清楚一个对象只会显示并允许编辑它的Tag对象。但标签对象本身需要知道什么Object适用于它。

然而,感觉就像在理想情况下我会尽量减少这种努力一样,我将不得不做多次更新。任何人都可以推荐更好的方法来做到这一点?或者由于Realm的局限性,没有办法解决这个问题吗?

回答

2

这正是LinkingObjects的用途。将Tag中的objects属性更改为let objects = LinkingObjects(fromType: Object.self, property: "tags")将使标记在添加到对象时自动更新。

+0

谢谢,抱歉,我花了这么长时间才接受。我正在编写单元测试来测试它,发现单元测试领域对象保存等并不那么简单! – TommyBs