我目前有一个应用程序列出了许多事件(骑马,派对等),我希望能够将这些事件添加到“收藏夹”列表中,这些列表将存储在核心数据中,但我也是希望这些事件按照添加到收藏夹的顺序排序。我意识到我可以在事件中添加一个索引属性,并在检索事件时使用描述符进行排序,但我希望能够将事件添加到多个收藏列表中,所以我认为这不会起作用。
我也研究了有序的关系,这正是我正在寻找的但是需要iOS5,作为最后的手段,我可能可以应对,尽管我希望能够找到另一种方法来做到这一点,如果可能的话。有什么想法吗?
感谢。
编辑:用户还可以添加和删除收藏夹列表,这样就无法添加日期属性并按其排序。
答案 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)
存放时间&项目添加到收藏夹的日期。稍后,在查询数据库时,按此时间戳排序。
使用不同的收藏列表,您可能希望存储多个时间戳,每个列表一个。