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