0

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

我还研究了有序关系,这正是我正在寻找的,但需要 iOS5,作为最后的手段,我可​​能可以应付这个问题,但如果可能的话,我希望能够找到另一种方法来做到这一点。有任何想法吗?

谢谢。

编辑:用户还可以添加和删除收藏夹列表,因此无法添加日期属性和排序。

4

3 回答 3

2

正确的解决方案是使用第三个实体来代表收藏列表中某个事件的成员资格。让我们称之为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。

于 2011-09-12T19:53:28.693 回答
2

与 iOS 5 保持有序关系。iOS 设备更新得相当快,我想你不会放弃很大比例的潜在客户。更不用说您不必推出自己的实施所节省的时间了。

于 2011-09-12T11:15:47.727 回答
0

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

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

于 2011-09-12T09:56:39.917 回答