0
我有一個實體,其屬性爲date
,它是一個NSDate。我將如何構造一個謂詞來獲取存儲在模型中的最早日期?在實體中查找最早的日期以計算從現在開始到現在的天數
我希望能夠計算從現在到實體的最早日期之間的天數,因此我可以一天一次將它們放置在tableview中。這一點我相信我可以自己做。
感謝您的幫助。
我有一個實體,其屬性爲date
,它是一個NSDate。我將如何構造一個謂詞來獲取存儲在模型中的最早日期?在實體中查找最早的日期以計算從現在開始到現在的天數
我希望能夠計算從現在到實體的最早日期之間的天數,因此我可以一天一次將它們放置在tableview中。這一點我相信我可以自己做。
感謝您的幫助。
構建NSExpression
以檢索最小date
。像下面這樣:
NSExpression *keyPathExpression = [NSExpression expressionForKeyPath:@"date"];
NSExpression *minDateExpression = [NSExpression expressionForFunction:@"min:"
arguments:[NSArray arrayWithObject:keyPathExpression]];
然後,您可以在NSExpressionDescription
包裝這個,你的請求調用setPropertiesToFetch:
,並執行正常。它不會返回一個託管對象數組,它現在將返回一個包含表達式結果的字典 - 最小日期。
請參閱Apple的核心數據編程指南的Fetching Specific Values部分以獲取更詳細的解釋和示例代碼。
好主意,我會仔細研究一下。我目前正在嘗試使用一個排序描述符來返回一個排序列表,並只提取一個實體。哪個更有效/更好? –
這取決於你有多少記錄。如果你使用排序方法,它們都必須被加載到內存中,如果有很多,這可能會很慢。但是,您可以將獲取限制設置爲1,我認爲核心數據在數據庫級別足夠聰明。我不確定表達式在哪裏執行;可能在數據庫上,但不要聽我的話。 :) –
以及你的作品。 :)我在前面的代碼中將獲取限制設置爲1,但是我們必須從長遠來看哪個更好。可能會有相當多的記錄,但我們會看到測試如何進行。非常感謝。 –