代码之家  ›  专栏  ›  技术社区  ›  Steve Harrison

如何在核心数据中存储混合数组

  •  1
  • Steve Harrison  · 技术社区  · 14 年前

    我需要存储两种类型的对象, Feed Folder ,在核心数据的数组中。例如:

    Array
        Feed
        Feed
        Folder
        Feed
        Folder
        Folder
        …etc...
    

    BWOrderedManagedObject 用于在核心数据中按顺序存储对象,但我不确定如何存储混合对象(数组需要混合,因为这些项是按特定顺序排列的)。理想情况下,我会有一个指向两个实体的关系,但显然这是不可能的。

    Transformable 属性。但是,存储在数组中的对象呢?我需要自己管理所有这些数据吗?还是仍由核心数据管理?

    1 回复  |  直到 14 年前
        1
  •  3
  •   Dave DeLong    14 年前

    我是这样做的:

    alt text http://gallery.me.com/davedelong/100084/Screen%20shot%202010-07-06%20at%207.22.10%20PM/web.png?ver=12784658050001

    AbstractListItem 是一个抽象实体,它具有order属性并与 Folder ,表示该项的(单个)父项。

    文件夹 抽象列表项 抽象列表项 AbstractListItems (所以 Folders Feeds

    喂养 抽象列表项 文件夹 ).

    NSArray * orderedChildren = [[aFolder children] sortedArrayUsingDescriptors:[NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"order" ascending:YES]]];
    

    为了获取顶级项目,您需要执行一个fetch来查找所有项目 对象在哪里 parent = nil .