Ordenar con comparadores en Objective-C
Un block devuelve ascendente, igual o descendente; el arreglo obedece.
#import <Foundation/Foundation.h>
int main(void) {
@autoreleasepool {
NSArray<NSNumber *> *years = @[ @1971, @1959, @1977, @1965 ];
// A comparator block returns ascending, same, or descending.
NSArray<NSNumber *> *sorted =
[years sortedArrayUsingComparator:
^NSComparisonResult(NSNumber *a, NSNumber *b) {
return [a compare:b];
}];
NSLog(@"Oldest press: %@", [sorted firstObject]);
NSLog(@"In order: %@", [sorted componentsJoinedByString:@", "]);
}
return 0;
}
Cómo funciona
sortedArrayUsingComparator:devuelve un arreglo nuevo ordenado.[a compare:b]ya habla NSComparisonResult.- El arreglo original queda intacto — inmutable entra, inmutable sale.
Palabras clave y builtins usados aquí
NSArrayNSNumberintreturnvoid
El intento, en números
- Líneas
- 17
- Caracteres a escribir
- 463
- Tokens
- 99
- Ritmo de tres estrellas
- 60 tpm
Al ritmo de tres estrellas de 60 tokens por minuto, este intento toma unos 99 segundos.
Paso 3 de 3 en Enumeración; paso 15 de 27 en Fundamentos del lenguaje.