在核心数据中有多个时间相同的对象一对多关系

时间:2014-04-16 13:20:29

标签: core-data nsarray magicalrecord nsset

我的Core Data模型中有两个实体:Library和Book。它们通过图书馆和书籍之间的To To关系联系起来 但是,在我的示例中,我在我的库中有两次完全相同的书,当我尝试将它们添加到我的库时,只出现一个。我搜索了一下,注意到在图书馆对象中,书籍存储为NSSet 有谁知道如何将图书存储在NSArray中呢?

2 个答案:

答案 0 :(得分:1)

你不能(好吧,除非你取消Book实体并使用可转换属性,但这不是一个好的解决方案。)

显而易见的选择是在count实体上添加Book属性,以便您可以记录您拥有的这本书的数量。这可能会对您的其他设计产生什么影响,这是您需要考虑的事项。

答案 1 :(得分:1)

在Xcode侧栏中,有一个名为" Ordered relationship"的复选框,但正如Wain所提到的,这不会解决重复的问题。但是,它会将书籍保存在有序集合中(NSOrderedSet)。

我会创建一个新实体LibraryBook,它与Book有一对一的关系,而与Library有一对一的关系。您可以在一个LibraryBook中拥有两个Library,两者都指向同一个Book