2011-10-20 129 views
4

我有一個具有多對子的父實體。如果我使用屬性(例如名稱)命令父提取,則一切正常。但是,如果我嘗試這樣做:具有多對多關係的NSSortDescriptor

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"[email protected]" ascending:NO]; 

它不起作用。我也嘗試添加

[fetchRequest setRelationshipKeyPathsForPrefetching:[NSArray arrayWithObject:[entityProperties objectForKey:@"child"]]]; 

但它沒有起作用。

我可以根據to-many排序嗎?@ count或者我需要添加一個屬性並在每次添加一個孩子時更新它?

回答

8

假設您正在使用sqlite存儲;您無法按@count排序,因爲它在「對象」級別解析,而NSFetchRequest上的NSSortDescriptor在數據庫級別解析。因此,正如你猜測的那樣,你需要創建一個計數屬性來排序。

如果您使用的是二進制或內存存儲類型,則計數應該正常工作,因爲它們只能作爲對象訪問。

+0

謝謝。我感到困惑,因爲它聽起來像根據你在這裏給出的答案是可能的:http://stackoverflow.com/questions/2448252/core-data-nsfetchrequest-sorting-by-count-of-to-many-relationship – Adriana