2011-09-12 53 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設備更新速度相當快,我想你不會放棄大部分潛在客戶。更不用說您將不需要推出自己的實施而節省的時間。