walmart usar precio marcas hershey entre diferencia como color chocolate bebida cocoa

precio - como usar la cocoa



¿Cómo agregar estos objetos con nombre a la matriz por este orden? (4)

Tengo un objeto con nombre, al igual que el button 1 , button 2 , button 11 ,button 111 , quiero agregar este objeto a una matriz en este orden: button 1 ,button 2 , button 11 , button 111 , pero encontré que estos objetos pueden agregar la matriz en este orden: button 1 , button 11,button 111 , button 2 ¿Por qué? ¡Gracias por su respuesta!


He usado la combinación NSNumericSearch | NSCaseInsensitiveSearch para obtener el mejor resultado. Espero que alguien salve su vida en Googeling. Verifica los resultados

NSArray * array = [NSArray arrayWithObjects: [NSDictionary dictionaryWithObject: @"C3" forKey: @"sort"], [NSDictionary dictionaryWithObject: @"C1" forKey: @"sort"], [NSDictionary dictionaryWithObject: @"C100" forKey: @"sort"], [NSDictionary dictionaryWithObject: @"Z0" forKey: @"sort"], [NSDictionary dictionaryWithObject: @"Z1000" forKey: @"sort"], [NSDictionary dictionaryWithObject: @"M" forKey: @"sort"], [NSDictionary dictionaryWithObject: @"m" forKey: @"sort"], [NSDictionary dictionaryWithObject: @"M" forKey: @"sort"], [NSDictionary dictionaryWithObject: @"m" forKey: @"sort"], [NSDictionary dictionaryWithObject: @"1A4" forKey: @"sort"], [NSDictionary dictionaryWithObject: @"A2" forKey: @"sort"], [NSDictionary dictionaryWithObject: @"A12" forKey: @"sort"], [NSDictionary dictionaryWithObject: @"B4" forKey: @"sort"], [NSDictionary dictionaryWithObject: @"B6" forKey: @"sort"], [NSDictionary dictionaryWithObject: @"B100" forKey: @"sort"], [NSDictionary dictionaryWithObject: @"B1" forKey: @"sort"], [NSDictionary dictionaryWithObject: @"1a4" forKey: @"sort"], nil]; NSSortDescriptor * descriptor = [NSSortDescriptor sortDescriptorWithKey: @"sort" ascending: YES comparator: ^NSComparisonResult(id obj1, id obj2) { return [obj1 compare: obj2 options: NSNumericSearch|NSCaseInsensitiveSearch]; }]; NSArray * sortedArray = [array sortedArrayUsingDescriptors: [NSArray arrayWithObject: descriptor]]; NSLog(@"Original array:"); for(NSDictionary * value in array) NSLog(@"%@", [value objectForKey: @"sort"]); NSLog(@"Sorted array:"); for(NSDictionary * value in sortedArray) NSLog(@"%@", [value objectForKey: @"sort"]);

Resultado

Matriz original:

C3 C1 C100 Z0 Z1000 M m M m 1A4 A2 A12 B4 B6 B100 B1 1a4

Array ordenado:

1A4 1a4 A2 A12 B1 B4 B6 B100 C1 C3 C100 M m M m Z0 Z1000


De la misma manera que si tuviera archivos con este nombre en Finder, ordenarían de la misma manera.

Para obtener un orden correcto, debe nombrarlos botón 001, botón 002, botón 011, etc.

Alternativamente, tendrás que escribir tus propias descripciones de clasificación.

Consulte aquí para NSMutableArray sortUsingSelector: y aquí para NSSortDescriptor



Puede usar este código para ordenar la matriz. Use NSNumericSearch para buscar el valor numérico en cadena.

NSArray * ary = [[NSArray alloc] initWithObjects:@"button 1" , @"button 2" , @"button 11" ,@"button 111", nil]; ary = [ary sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) { return [(NSString *)obj1 compare:(NSString *)obj2 options:NSNumericSearch]; }]; NSLog(@"ary : %@", ary);

Y la pantalla de registro:

ary : ( "button 1", "button 2", "button 11", "button 111" )