繁体   English   中英

处理核心数据中的关系

[英]Manipulate Relationships in Core Data

我有一个NSManagedObject子类,定义如下:

extension Item {
  @NSManaged var name: String
  @NSManaged var parent: Item
  @NSManaged var children: [Item]
}

为了设置'parent'属性,我使用以下命令:

anItem.parent = aParent

而且我知道它也会自动将anItem附加到aParent.children。

但是,我希望将子项添加到特定位置。 这个想法是要有一系列的孩子。

我知道我可以这样做:

aParent.childen.insert(anItem, atIndex: specificPosition)

但是,是否有任何方法可以覆盖或自动重载以自动实现呢?

将子项插入特定位置将无法确保以后获取时的排序顺序相同。 您将需要一个附加属性来定义获取期间的排序顺序。

看看这个答案

这里有一些误解:

  1. CoreData对多关系不是Array类型,它们是SetNSSet 这可以通过让您的子类由Xcode生成来验证。
  2. 可能有一个有序的关系-只需看看您的Core Data Model中的关系检查器即可。 这会将其更改为NSOrderedSet
  3. 到(2)的主要注意事项-该订单仅由您添加它们的顺序决定-有关更多信息,请参见此链接
  4. 如果可以的话,将它们按顺序存储会占用更多的内存,如果可以的话,请具有一个属性,可以在提取后对它们进行排序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM