2011-04-04 62 views
0

變形屬性排序核心數據對象,我顯示存儲在覈心數據在一個UITableView對象時遇到的物體的變形的一個屬性排序這些對象的問題。我應該指出,我正在使用NSFetchedResultsController作爲Core Data存儲和我的表視圖之間的控制器。當我僅僅使用一個數組來保存所有的對象時,我可以根本沒有任何問題地對它們進行排序。我正在使用FRC,因爲我需要將數據分組爲部分標題,FRC使這非常簡單。用NSFetchedResultsController

讓我們把這些對象我整理「測量」的對象。每個測量對象都有一個距離屬性。該距離屬性是自定義類EPHDistance,因此它在Core Data模型中設置爲Transformable屬性。

長話短說,測量對象的距離的排序確實是的工作,但只有在我編輯了由Core Data存儲的對象之後,或者我向商店中添加了新對象之後。在編輯商店並返回到按順序列出所有Measurement對象的表格後,一切都很好。這只是初始啓動和查看錶格視圖的對象未正確排序的情況。其實我已經放在一個的NSLog聲明,我EPPDistance -compare:方法和它的時候我,直到我的核心數據存儲添加/編輯對象的對象進行排序不是獲取調用。對於它的價值,如果我排序的「日期」的屬性,這是一個NSDate論文測量物體,它的偉大工程右出了大門。

我不是超級經驗的核心數據,這是在使用NSFetchedResultsController我第一次真正嘗試,所以我有點這個百思不得其解。任何投入將不勝感激。

非常感謝, 埃裏克

回答

0

你可以創建你的Measurement級呼叫-(NSString*)distanceCompareString,它返回一個字符串,將幫助您排序從EPHDistance對象的可選方法。在您的NSSortDescriptor中,您只需使用distanceCompareString作爲排序關鍵字。

+0

你不能只是隨意的方法添加到NSManagedObject子類,使用該方法在SortDescriptor。經過進一步調查,你*不能*基於可變形屬性對NSManagedObjects進行排序。爲什麼按可轉換屬性進行排序工作*在更新數據存儲之後,我感到困惑。看起來我將不得不抽出所有我想查看的對象,並將它們存儲在一個數組中並按照這種方式排序。不知道我將如何處理創建表的部分...謝謝你的嘗試,但:) :) – 2011-04-04 16:53:10

+0

嗯,我用這種方法提供表部分名稱。我認爲它也會起作用。太糟糕了。 – Dan 2011-04-04 18:24:37

相關問題