2016-10-12 16 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