我有一個SQLite支持的核心數據存儲並希望使用NSFetchRequest
獲取管理對象列表。我希望所說的列表按照可以在數據庫級別輕鬆計算的布爾值進行排序。我知道這是因爲它能夠用於配製使用NSPredicate
相同的條件下,這將如下所示:用謂詞對NSFetchRequest進行排序
[NSPredicate predicateWithFormat:@"uid = %@", currentUID]
可悲的是,似乎沒有辦法制定使用NSSortDescriptor
這樣的條件。我如何最好地解決這個問題?難道我取兩個列表,一個與
[NSPredicate predicateWithFormat:@"uid = %@", currentUID]
和一個與
[NSPredicate predicateWithFormat:@"uid != %@", currentUID]
,後來將它們結合起來?那麼我可以優雅地使用NSFetchedResultsController
嗎?
或者我應該獲取所有項目並稍後在代碼中進行排序?或者有什麼我錯過了。
好吧,我明白你來自哪裏,看到我的描述有點混亂。我不想使用謂詞對結果進行排序,我只是提到了它們,因爲它們提供了計算我想要對結果進行排序的值的功能。換句話說,我的謂詞匹配的所有結果應該在謂詞不匹配的結果之前出現;由單個對象的謂詞返回的布爾應該被排序描述符用來將它與另一個對象進行比較(從而產生你的三元結果)。我希望這使事情更清楚。 – 2011-02-18 00:13:39