Problema de NSSortDescriptor
Estoy creando una aplicación de libreta de contactos en la que busco nombres de la libreta de direcciones, los almacené en los datos básicos y los muestro en una tabla usandoNSFetchedResultsController.However
El primer índice y sección que aparece es # seguido de los alfabetos. Pero quiero hacerlo como en una aplicación de contacto nativa, es decir, # index debería llegar al fin.
Utilicé lo siguienteNSortDescriptor
:
sortDescriptor = [[NSSortDescriptor alloc] initWithKey: @ "fullName" ascendente: YES];
aquí "fullName" es elkey
en los datos básicos que se realiza mediante la concatenación de nombre y apellido. Y el identificador de sección es la primera letra de "fullName" si elfullName
no comienza con el alfabeto, su identificador de sección es #.
Lo había buscado y usadoNSDiacriticInsensitiveSearch
en elNSortDescriptor
Comparador pero no funcionó. Si alguien tiene alguna idea, hágamelo saber.
Aquí va mi código:
NSString *special = @"\uE000";
if ([[self sectionName:contactName] isEqualToString:@"#"]) {
sortName = [special stringByAppendingString:contactName];
}
else{
sortName = contactName;
}
[newContact setValue:[self sectionIdentifier:sortName] forKey:@"sectionIdentifier"];
[newContact setValue:sortName forKey:@"sortName"];
Y aquí está el descriptor de clasificación:
sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"sortName" ascending:YES];
[self sectionIdentifier:sortName]
este método devuelve # si sortName comienza con un alfabeto distinto y, de lo contrario, devuelve el alfabeto con el que comienza.
newContact es el objeto de la entidad.