从NSArray,KVC获取最大date

我有一个NSDates数组,我想从数组中获取最大的NSDate。 虽然我总是可以sorting和抓住第一个/最后一个,有没有办法做到这一点KeyValueCoding或其他快速的class轮方式? 我知道如果对象具有date属性,我可以使用类似valueForKeyPath @“@ max.date”的东西,但如果对象是date本身呢?

谢谢

您可以使用,

 NSDate *maxDate = [dateArray valueForKeyPath:@"@max.self"]; 

这会给你从数组中最大的date。 这样做之前,您不必sorting数组。

从文档中 ,

@max运算符将键path指定的属性的值与运算符右边的值进行比较,并返回find的最大值。 最大值是使用指定键path上的对象的compare:方法确定的。 比较的属性对象必须支持彼此的比较。 如果关键path右侧的值为零,则忽略。

请注意,@ max会做compare:然后将找出最大值。

同意@SeanDanzeiser。 更具体地说,这是一个70字节的单行内容:

 // if dateArray is the array of dates ... NSDate *maxDate = [[dateArray sortedArrayUsingSelector:@selector(compare:)] lastObject];