我需要存储两种类型的对象, Feed 和 Folder ,在核心数据的数组中。例如:
Feed
Folder
Array Feed Feed Folder Feed Folder Folder â¦etc...
BWOrderedManagedObject 用于在核心数据中按顺序存储对象,但我不确定如何存储混合对象(数组需要混合,因为这些项是按特定顺序排列的)。理想情况下,我会有一个指向两个实体的关系,但显然这是不可能的。
BWOrderedManagedObject
Transformable 属性。但是,存储在数组中的对象呢?我需要自己管理所有这些数据吗?还是仍由核心数据管理?
Transformable
我是这样做的:
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 ,表示该项的(单个)父项。
AbstractListItem
文件夹 抽象列表项 抽象列表项 AbstractListItems (所以 Folders 或 Feeds
文件夹
抽象列表项
AbstractListItems
Folders
Feeds
喂养 抽象列表项 文件夹 ).
喂养
NSArray * orderedChildren = [[aFolder children] sortedArrayUsingDescriptors:[NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"order" ascending:YES]]];
为了获取顶级项目,您需要执行一个fetch来查找所有项目 对象在哪里 parent = nil .
parent = nil