6

我有一個提取的結果控制器,應該顯示具有多個子實體的某個實體的所有項目。在NSFetchRequest中按實體名稱排序

提取結果控制器中的部分應基於實體名稱,即某個項目所屬的子實體。將sectionNameKeyPath設置爲@"entity.name"即可。

然而,似乎不可能爲獲取請求獲取正確的排序描述符。像[NSSortDescriptor sortDescriptorWithKey:@"entity.name" ascending:YES]這樣的結果會導致出現像keypath entity.name not found in entity Something這樣的錯誤。

+0

嘿@mrueg,你找到這個問題的答案了嗎? – epologee

回答

3

嘗試使用[NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES];由於獲取請求已定義entity,因此您不需要上述entitiy。另請參閱Sort Descriptor Class Reference

+1

+1肯定是問題。 'entity.name'意思是「尋找一個名爲entity的關係,然後在關係的另一邊請求它的'name'屬性,因爲沒有'entity'關係,排序失敗 – TechZen

+0

這導致'keypath在實體Something中找不到名稱「,其原因顯然是我的實體Something沒有一個名爲property的屬性,即使這樣做,也不會導致正確的排序 我的問題的表述可能有所不同發現在http://stackoverflow.com/questions/3931442/is-it-possible-to-sort-by-subclasses-in-an-nsfetchrequest-without-adding-additi – mrueg

+0

@ TechZen:什麼'entity.name' _should_的意思是,「尋找_some_屬性命名實體(即不只是關係),並要求得到的對象的名稱」。唯一的問題是,排序是在SQLite而不是在NSManagedObjects。 – mrueg