2012-02-08 33 views
1

我有一個iPhone上的核心數據實體中的項目列表,他們都有一個item_id整數屬性。我需要返回表中最高編號的item_id和最低編號的item_id,其中一個獲取請求。我不知道這些數字可能是什麼,因爲他們不是從0開始上升。核心數據在一個fetchRequest中選擇第一個和最後一個記錄

完成此操作的最佳方法是什麼?再說一次,我知道我可以用2個單獨的獲取請求來做到這一點,有沒有辦法只用一個呢?

回答

3

這只是一個棘手的問題,只有一個提取。我會使用MAX和MIN函數/表達式來執行兩次提取。例如

NSExpression *minExpression = [NSExpression expressionForFunction:@」min:」 
arguments:[NSArray arrayWithObject:keyPathExpression]]; 

如果你絕對必須這樣做,在一個取動作,然後我只能想到做一個使用fetchall和排序的ID,然後獲得第一,並通過持續:

[objects objectAtIndex:0] 
[objects lastObject] 

更新1: 貌似這傢伙有一個解決方案: http://useyourloaf.com/blog/2012/1/19/core-data-queries-using-expressions.html

+0

他的解決方案的關鍵是多個表達式: '[fetchRequest setPropertiesToFetch:[NSArray的arrayWithObjects:earliestExpressionDescription, latestExpressionDescription,nil]];' 非常有用,我不知道你可以自己做。 – elprl 2012-02-09 00:12:21

+0

很棒! 感謝您的幫助 – 2012-02-09 18:37:04

相關問題