solucion - support.apple.com/iphone/restore iphone 6s
iPhone CoreData-¿Cómo recuperar objetos gestionados y clasificarlos ignorando el caso? (4)
Consulte la guía de programación NSPredicate , pero básicamente use [c] para ignorar el caso:
@"firstName BEGINSWITH[c] $FIRST_NAME"
¿Alguien sabe cómo buscar algunos resultados clasificándolos alfabéticamente pero ignorando el caso?
Gracias por su respuesta, pero necesito ordenar el resultado de una simple "consulta" que ignora el caso. Su sugerencia se aplica para buscar y comparar.
Hablando SQL, necesito un ORDER BY firstName ASC
, y este comando no debe tener en cuenta mayúsculas y minúsculas para mi uso.
He hecho algunas búsquedas en Google y terminé de leer la referencia de la clase NSSortDescriptor , y pude encontrar la respuesta para mi pregunta. La solución es configurar un selector para el descriptor de clasificación de la siguiente manera:
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"firstName" ascending:YES selector:@selector(caseInsensitiveCompare:)];
Espero que sea útil para más personas.
Si la aplicación está traducida en varios idiomas, considere usar el selector de caseInsensitiveCompare
localizedCaseInsensitiveCompare:
en lugar de caseInsensitiveCompare
. Tendrá el efecto de evitar que la letra ''é'' esté después de la letra ''e''.
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"firstName" ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)];
Versión Swift:
let sortDescriptor = NSSortDescriptor(key: "firstName", ascending: true, selector: #selector(NSString.localizedCaseInsensitiveCompare))