2012-06-13 46 views
1

我正在寫一個iPhone應用程序。在我的應用程序中,我的數據庫中有一個Entity(我們稱之爲MusicCategory),它與我的數據庫中的另一個實體(讓它稱爲Songs)具有多對多關係。如何根據其中一個屬性的數量來設置謂詞

我正在嘗試編寫一個查詢來獲取5個具有最多歌曲數量的MusicCategories。

有人可以給我一些關於如何爲這個查詢寫謂詞的指針嗎?

非常感謝您的幫助 維傑

+2

[?你嘗試過什麼(http://whathaveyoutried.com) – Tim

+0

喜添,我不知道從哪裏開始。我閱讀了蘋果代碼數據文檔並搜索了網頁,但找不到任何幫助。現在,我得到了音樂分類實體中的所有項目,並以編程方式查找前五名。作爲程序員,我的直覺告訴我們應該有一種使用謂詞的方法。 – Vijay

回答

0

而不是使用一些謂詞你只需要設置排序按歌曲數量排序描述符。但那不是有效的,因爲它會引發故障。因此,您可以添加計數屬性以使其更有效。

request.sortDescriptors =[NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"songs.count" ascending:YES]]; 
1

排序的方法是正確的。您可以限制讀取請求你所需要的5分頂級的:

fetchRequest.sortDescriptors = [NSArray arrayWithObject: 
    [NSSortDescriptor sortDescriptorWithKey:@"songs.count" 
           descending:YES]]; 
fetchRequest.fetchLimit = 5; 
相關問題