2010-06-12 43 views
1

docs因此,Apple建議不要在NSFetchRequest中使用謂詞和排序描述符?

總結,不過,如果你執行一個 直接獲取數據,通常應 不添加目標爲基礎的C-謂詞 或排序描述符的獲取 請求。相反,您應該將 這些應用於獲取的結果。如果 您使用的陣列控制器,可以 需要繼承NSArrayController的這樣 你可以把它不能通過排序 描述符的持久存儲 ,而是你的 數據被取出後進行排序。

我不明白。在獲取請求中使用它們有什麼問題?回收一大堆管理對象只是爲了在內存中挑出1%的對象,讓99%的垃圾在其周圍浮動不是很愚蠢嗎?按照您需要的順序,只從持久存儲中獲取您真正需要的東西是否更好?可能我確實弄錯了......

回答

3

該文檔引用了基於Objective-C的謂詞或排序描述符。這與您在引用的文檔的相同頁面中提供的示例中看到的標準謂詞或排序描述符不同。

例如,使用

+ (NSPredicate *)predicateWithBlock:(BOOL (^)(id evaluatedObject, NSDictionary *bindings))block; 

建立一個謂詞允許您使用Objective-C來實現用於選擇的對象塊。由於該塊的複雜性可能會很高,因此Apple建議首先獲取所有對象,然後應用這些過濾器。