2016-10-12 17 views
0

我有以下的數組:抓取實體數組中的最高日期。

let messages = (fetchedResultsController.fetchedObjects as! [Message]) 

基本上,此陣列中的每個元素是實體消息,其中每個消息具有5個核心數據的屬性。值得注意的是,在這種情況下,我關心的屬性是時間戳,其類型爲NSDate !!!!!!。我想使用reduce函數獲取這個數組中最大日期的消息。請不要建議先排序消息。我試圖避免這種情況。謝謝 !

+0

如果你只與物體感興趣「最高日期」,則可以相應地配置獲取請求(添加排序描述符並將獲取的項目數限制爲一個)。如果你已經有了數組,那麼可以使用帶自定義比較器的'max(by:)'。知道你爲什麼要使用'reduce'會很有趣。 –

+0

嘿Martin R,在這種情況下,我將如何使用max(by:)。我無法弄清楚語法。謝謝您的回覆。 – slimboy

回答

2

不知道你爲什麼會想使用減少,但我認爲這會工作,和你們在找什麼(假設斯威夫特3)適合:

let result = messages.max(by: {$0.timeStamp < $1.timeStamp}) 
+0

謝謝哥們,正是我在找什麼! – slimboy