Necesito generar una matriz ordenada de NSNumber
s de otra NSArray
. Quiero usar el método sortedArrayUsingComparator:
. Me encontré con este ejemplo en la documentación de Apple:Cambiar el orden de clasificación de - [NSArray sortedArrayUsingComparator:]
NSArray *sortedArray = [array sortedArrayUsingComparator: ^(id obj1, id obj2) {
if ([obj1 integerValue] > [obj2 integerValue]) {
return (NSComparisonResult)NSOrderedDescending;
}
if ([obj1 integerValue] < [obj2 integerValue]) {
return (NSComparisonResult)NSOrderedAscending;
}
return (NSComparisonResult)NSOrderedSame;
}];
Aquí estoy solo con el comparador en un bloque, lo cual está bien. El género en sí, el bit que está oculto para mí, que usa este bloque, parece estar ascendiendo.
Me gustaría saber si puedo solicitar una orden de clasificación diferente externa a este bloque, o hago sólo hay que darle la vuelta al <
y >
's (o NSOrderedXXX
' s) por ahí?
Por supuesto, esto está muy bien, pero a menos que se adorna con naranja -los comentarios de tráfico-cono escritos en rojo-Jesús-Cristo-tinta que indican que has dado la vuelta al orden, en algún momento más tarde esto podría ser una pesadilla de depuración potencial. La creación de un descriptor de ordenación tendría más sentido y sería autocomplaciente a menos que el rendimiento tuviera un impacto grave. –
@God Un descriptor de ordenación suena genial; proporcione un ejemplo de implementación para comparar. – zaph