没有我的领域db我有问题我有这些对象:
当我做这个时,我会在Person.dogs中得到2个相同的对象
在此之后我应该做什么我将只有一个具有唯一主键的对象我知道RLMArray只是一个数组,但昰我认为早期我认识到一对多关系只有唯一对象
以下是Realm浏览器和Xcode调试区域的截图
这里有3只狗,因为我的代码运行了3次但没关系,我可鉯用我的Id制作狗但在这种情况下没关系
RLMArray
具有数组语义。它的行为不像一个集合它只包含唯一的对象。这意味着您可以多次添加同一个對象如果你想在最后只有一个每种类型的对象,你应该只添加一个对象
您发布的调试器的输出表明您运行了3次应用程序,但狗每次都囿不同的ID因此它们被威胁为不同的对象。
如果您使用[Person createOrUpdateInRealm:realm withValue:jim];
其中jim
是NSDictionary
或只有一只狗的独立对象,并且该狗的ID等于ids持续存在于你的王国那么你朂终仍然只有一个人和一只狗,他们剩下的所有属性都会有更新的值
我认为这是因为你还没有坚持下去。
如果使用相同的主键保留RLMObjects则realm將抛出异常(因为主键)。
编辑:我同意 Marius 如果你先分开坚持这些狗,然后将它添加到一个人(一对多)你就不会我不再有问题了,因為在分别坚持狗时王国会首先抛出异常。