我一直與NSFetchedResultsController做一些惡夢,並試圖找到解決我的問題概述here,我遇到了一個不尋常的關於fetchedResultsController,特別是sectionNameForKeypath
參數提取的數據。NSFetchedResultsController - sectionNameForKeypath如何獲取其數據?
假設我有2個實體和按下面的關係的對象模型:
項目 < < - >類別
類別具有(NSNumber的*)屬性稱爲displayOrder
這是用於將提取的項目實例分成表格視圖中的部分:
NSFetchedResultsController *controller = [[NSFetchedResultsController alloc]
initWithFetchRequest:fetchRequest
managedObjectContext:moc
sectionNameKeyPath:@"category.displayOrder"
cacheName:nil];
如果我想以某種方式動態地操作displayOrder
的輸出,顯然的選擇是覆蓋其getter方法並在其中執行任何我想要的操作。但問題是,displayOrder
的getter在fetchRequest或fetchedResultsController中根本不會被訪問,即使我在sectionNameForKeypath
中指定它,AND我可以看到fetchedResultsController正在使用它的值來分隔和顯示這些部分。
下面是覆蓋的getter方法的一個簡單例子,它永遠不會被調用。這是把我的範疇類中:
-(NSNumber*)displayOrder
{
NSLog (@"displayOrder getter called");
NSNumber *displayOrder = [NSNumber numberWithInt:0];
return displayOrder;
}
我也嘗試覆蓋awakeFromFetch
無果(也不會被調用,而是因爲我獲取項目情況和訪問並不讓我感到吃驚類別及其屬性通過關係)。
因此,最後我的問題是:category.displayOrder
值如何傳遞給我的fetchedResultsController,並有沒有辦法讓我來控制這個輸出?
在此先感謝您的任何想法!
羅格
感謝您的澄清Anomie!你有鏈接到文檔討論的地方嗎?乾杯! – Rog 2011-03-20 23:54:43
[Here you go](http://developer.apple.com/library/ios/#DOCUMENTATION/CoreData/Reference/NSFetchedResultsController_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40008227-CH1-SW33) – Anomie 2011-03-21 00:07:45