CoreData阵列

时间:2011-05-10 18:08:19

标签: iphone objective-c cocoa core-data nsarray

目前我需要设置一个使用以下结构的数据库。

  • 第1项
    • 对象A.
      • 东西A1
      • 东西A2
      • 东西A3
    • 对象B.
      • 东西B1

我的第一个想法是创建3个实体,一个用于“Item”,“Object”和“Stuff”,然后在每个实体中都有一个数组。 所以每个“Item”都有一个包含“对象”的数组,每个对象都有一个“stuff”数组。

这会是一个好方法吗?如果没有,那么完成同样任务的更正确和有效的方法是什么?

2 个答案:

答案 0 :(得分:4)

您创建3个实体的方法是正确的方法。这些实体之间的连接是Core Data称为 relations 的连接。您需要注意Core Data仅处理无序关系。因此,对象A 将无法获得 Stuff NSArray,它将拥有{em> Stuff 的NSSet

如果需要排序,则需要使用子实体的属性进行排序,并使用NSFetchRequest获取这些对象。例如,对某些“名称”或“日期”属性进行排序。

答案 1 :(得分:4)

在这种情况下,如果您有2个实体,并且希望它们之间存在关系,则应尝试 CoreData的关系。在这种情况下,您应该使用 to-many relationship

PS:别忘了选择关系删除规则! :)