2011-08-31 54 views

回答

1

構建NSExpression以檢索最小date。像下面這樣:

NSExpression *keyPathExpression = [NSExpression expressionForKeyPath:@"date"]; 
NSExpression *minDateExpression = [NSExpression expressionForFunction:@"min:" 
    arguments:[NSArray arrayWithObject:keyPathExpression]]; 

然後,您可以在NSExpressionDescription包裝這個,你的請求調用setPropertiesToFetch:,並執行正常。它不會返回一個託管對象數組,它現在將返回一個包含表達式結果的字典 - 最小日期。

請參閱Apple的核心數據編程指南的Fetching Specific Values部分以獲取更詳細的解釋和示例代碼。

+0

好主意,我會仔細研究一下。我目前正在嘗試使用一個排序描述符來返回一個排序列表,並只提取一個實體。哪個更有效/更好? –

+0

這取決於你有多少記錄。如果你使用排序方法,它們都必須被加載到內存中,如果有很多,這可能會很慢。但是,您可以將獲取限制設置爲1,我認爲核心數據在數據庫級別足夠聰明。我不確定表達式在哪裏執行;可能在數據庫上,但不要聽我的話。 :) –

+0

以及你的作品。 :)我在前面的代碼中將獲取限制設置爲1,但是我們必須從長遠來看哪個更好。可能會有相當多的記錄,但我們會看到測試如何進行。非常感謝。 –

相關問題