使用核心數據對多關係時存在一個長期存在的問題,即很難根據Parent
實體上的NSSortDescriptor
對實體進行排序children
的數量與Child
實體處於一對多關係。這與NSFetchedResultsController
結合使用時尤其有用。通常,初始化排序描述爲:NSSortDescriptor根據核心數據對多關係中的項目數排序
NSSortDescriptor *sortByNumberOfChildren = [[NSSortDescriptor alloc] initWithKey:@"[email protected]" ascending:NO];
導致異常'Keypath containing KVC aggregate where there shouldn't be one; failed to handle [email protected]
在的iOS 6.1,我加入了國際志願者組織訪問-countOf<Key>
作爲屬性我的管理對象模型作爲一個整數發現了一個修復類型。我沒有在我的NSManagedObject
子類中爲這個屬性實現任何東西,因爲所有的魔法似乎都在發生。 (見https://stackoverflow.com/a/15546371/2042527)。
但是,這不適用於iOS 6.0。在這裏,我發現,添加下面的方法你NSManagedObject
子解決問題:
- (NSUInteger)countOfChildren{
return [self.children count];
}
將兩個不不兩個SDK的解決這個問題。相反,它打破瞭解決方案。
有沒有人知道爲什麼會發生這種情況,以及爲什麼兩者之間存在差異,儘管在iOS 6.0和iOS 6.1之間沒有提及Core Data或Foundation的更改。
您是否將此添加到'NSManagedObjectModel'?很難看到甚至可以編譯,更不用說工作了。 NSManagedObjectModel與其他類沒有任何關係。 – 2013-03-21 16:16:44
對不起,我的壞,我的意思是'NSManagedObject'子類也是第二次。我糾正了錯誤。 – 2013-03-21 16:44:49
不是解決您的具體問題,而是另一種觀點:取孩子和計算不同父母的數量如何?也許這[post](http://stackoverflow.com/questions/9157436/distinct-count-via-core-data-nsexpression-into-nsfetchedresultscontroller)可以幫助你。 – Paul 2013-07-09 12:13:06