Obtenir la date maximale de NSArray, KVC

J'ai un tableau de NSDates et j'aimerais récupérer le plus grand NSDate du tableau. Bien que je puisse toujours les sortinger et saisir le premier / dernier, y a-t-il un moyen de le faire avec KeyValueCoding ou un autre type de doublure rapide? Je sais que je pourrais utiliser quelque chose comme valueForKeyPath @ "@ max.date" si les objects avaient une propriété date, mais que se passerait-il si les objects sont eux-mêmes des dates ??

Merci

Vous pouvez utiliser,

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

Cela vous donnera la plus grande date de tableau. Vous n'avez pas à sortinger le tableau avant de le faire.

De la documentation ,

L'opérateur @max compare les valeurs de la propriété spécifiées par le path key à droite de l'opérateur et renvoie la valeur maximale trouvée. La valeur maximale est déterminée à l'aide de la méthode compare: des objects sur le path de key spécifié. Les objects de propriété comparés doivent prendre en charge la comparaison entre eux. Si la valeur du côté droit de la key est nulle, elle est ignorée.

Notez que @max fera la compare: et puis finda la valeur max.

D'accord avec @SeanDanzeiser. Pour être plus précis, voici un one-liner de ~ 70 byte:

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