2012-06-20 11 views
22

estoy ordenando una NSMutableArray de la siguiente manera:NSMutableArray clasificación - entre mayúsculas y minúsculas

NSSortDescriptor *sortDescriptor; 
    sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:str_key ascending:bool_asc_desc] autorelease]; 
    NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor]; 
    NSArray *sortedArray; 
    sortedArray = [ads_printers_array sortedArrayUsingDescriptors:sortDescriptors]; 

El problema es que se trata de mayúsculas y minúsculas, y me gustaría para que sea sensible a mayúsculas. ¿Cómo puedo hacer eso? Probé lectura de la documentación y encontré algo como esto:

sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:str_key ascending:bool_asc_desc selector: @selector(caseInsensitiveCompare)] autorelease]; 

Sin embargo, no tengo idea de lo que debe poner en el argumento de selección. ¡Gracias!

+1

posible duplicado de [quiero ordenar un arreglo usando NSSortDescriptor] (http://stackoverflow.com/questions/5542762/i- want-to-sort-an-array-using-nssortdescriptor) –

+0

Pagar siguiente publicación: http://stackoverflow.com/a/5542888/200272 –

+1

Gracias, para cualquier persona interesada en el método selector que he utilizado es (localizedCaseInsensitiveCompare :) . ¡Aclamaciones! – Kevin

Respuesta

39
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:str_key 
    ascending:YES selector:@selector(caseInsensitiveCompare:)]; 

ads_printers_array = [ads_printers_array sortedArrayUsingDescriptors:[NSArray 
    arrayWithObject:sortDescriptor]]; 
+0

Esta solución funcionó para mí –

0

Para Swift, haga lo siguiente:

let sortDescriptor = NSSortDescriptor(key: sortDescriptorKey, ascending: true, selector: #selector(NSString.caseInsensitiveCompare(_:)))

Cuestiones relacionadas