2011-09-12 50 views
0

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

我也看到了有序的关系,这正是我所期待的,但需要iOS5,作为最后的手段我可以应付,虽然我宁愿能够找到另一种方式来做到这一点,如果可能。有任何想法吗?

谢谢。

编辑:用户还可以添加和删除收藏夹的列表,以便添加日期属性和排序,这是不可能的。

回答

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.

+0

辉煌。我从来没有想过这样做,但它完美的作品。谢谢。 – JDx

+0

我很高兴帮助。不要犹豫,把我投票! –

0

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

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

+0

感谢您的回答。我考虑过这样做,但我希望用户能够添加和删除收藏夹列表,这将意味着我需要动态地添加/重命名核心数据中的属性,我认为这是不可能的? – JDx

2

与iOS 5进行有序关系。iOS设备更新速度相当快,我想你不会放弃大部分潜在客户。更不用说您将不需要推出自己的实施而节省的时间。