iPhone - 订购核心数据关系

时间:2011-09-12 09:47:57

标签: iphone core-data relationships

我目前有一个应用程序列出了许多事件(骑马,派对等),我希望能够将这些事件添加到“收藏夹”列表中,这些列表将存储在核心数据中,但我也是希望这些事件按照添加到收藏夹的顺序排序。我意识到我可以在事件中添加一个索引属性,并在检索事件时使用描述符进行排序,但我希望能够将事件添加到多个收藏列表中,所以我认为这不会起作用。

我也研究了有序的关系,这正是我正在寻找的但是需要iOS5,作为最后的手段,我可​​能可以应对,尽管我希望能够找到另一种方法来做到这一点,如果可能的话。有什么想法吗?

感谢。

编辑:用户还可以添加和删除收藏夹列表,这样就无法添加日期属性并按其排序。

3 个答案:

答案 0 :(得分:2)

与iOS 5订购关系.iOS设备更新速度相当快,我想你不会放弃大部分潜在客户。更不用说你将不必滚动自己的实现所节省的时间。

答案 1 :(得分:2)

正确的解决方案是将第3个实体表示为收藏列表的事件成员资格。我们称之为EventInFavourites

EventInFavourites有两对多关系:

Favourites< -------->> EventInFavourites 这个说Favourites可以有几个Event

Event< ---------->> EventInFavourites 这个说事件可以是几个Favourites列表中的一部分。

最后,该事件在该收藏列表中的位置用属性表示  EventInFavourites,让我们说position

因此,当您想要将某个事件添加到收藏列表时,您可以创建一个EventInFavourites实例,并将其链接到该事件和该收藏夹列表。有点像这样:

EventInFavourites *newFavouriteMembership = [EventInFavourites insertInManagedObjectContext:self.moc];
newFavouriteMembership.event = anEvent;
newFavouriteMembership.favourites = aFavouritesList;
newFavouriteMembership.position = 3; // or whatever
[self.moc save:NULL];

我遗漏了一些细节,但这应该会给你一个大局。

当然,你可以等待iOS 5。

答案 2 :(得分:0)

存放时间&项目添加到收藏夹的日期。稍后,在查询数据库时,按此时间戳排序。

使用不同的收藏列表,您可能希望存储多个时间戳,每个列表一个。