2013-05-14 76 views
0

我有一個NSFetchResultsController初始化與根據localizedCaseInsensitiveCompare:方法排序的NSSortDescriptor。FetchResultsController排序問題

實體按其姓氏排序,但其中一些實體並未指定其姓氏,因此char 170(以ASCII表示)被設置爲姓氏(不要問我爲什麼,源代碼這樣做,我寧願不改變它)。當排序時,這些「沒有姓氏」的人顯示在表格視圖的頂部。我希望他們在最後。

似乎是不可能使用特定NSSortDescriptor在我的情況(我使用FRC),在這裏我有哪些選擇?

[編輯] 比較塊或自定義的比較方法,不會與NSFetchResultsController

工作

回答

0

作爲排序描述符需要能夠和SQLite數據存儲到你的工作選擇是有限的。

讓你有,你可以排序的屬性時,可編輯的數據模型。具體如何計算值取決於您,但該屬性不能是暫時的。我建議您:

  1. NSManagedObject子類來創建/更新數據的排序實現willSave
  2. 或者,讓你排序數據的依賴鍵(使用KVO,又在你的NSManagedObject子類)

你的數據排序可能是那樣簡單:

self.sortValue = (self.lastName == 170 in ASCII ? @"ZZZZZZZZZZZZZZZ" : lastName)