¿Alguien sabe cómo buscar algunos resultados clasificándolos alfabéticamente pero ignorando el caso?iPhone CoreData - ¿Cómo recuperar objetos gestionados y ordenarlos ignorando el caso?
Respuesta
Gracias por su respuesta, pero hay que solucionar el resultado de un simple "consulta" ignorando mayúsculas y minúsculas. Su sugerencia se aplica para buscar y comparar.
Hablando SQL, necesito un ORDER BY firstName ASC
, y este comando no debe distinguir entre mayúsculas y minúsculas para mi uso.
He hecho algunas búsquedas en Google y terminé de leer el NSSortDescriptor Class reference, y pude encontrar la respuesta a 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.
Mira la NSPredicate programming guide, pero básicamente utilice [c] para ignorar caso:
@"firstName BEGINSWITH[c] $FIRST_NAME"
Hey Ben, gracias! Pude encontrar la respuesta a mi pregunta. Lo publiqué aquí. Saludos, VFN – vfn
Si la aplicación está traducida a varios idiomas, considere utilizar el selector 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:)];
Swift Versión:
let sortDescriptor = NSSortDescriptor(key: "firstName", ascending: true, selector: #selector(NSString.localizedCaseInsensitiveCompare))
- 1. Cómo obtener objetos después de combinar el contexto CoreData
- 2. Cómo recuperar objetos completos (no fallas) de CoreData?
- 3. Guardar y recuperar un UIImage en CoreData
- 4. caso HtmlAgilityPack XPath ignorando
- 5. Cómo comparar cadenas en sql ignorando el caso?
- 6. Objetos gestionados de datos principales con métodos y datos adicionales
- 7. Cómo ordenar un NSMutableArray de Objetos gestionados a través de un gráfico de objetos
- 8. Coredata y NSOrderedSet: ¿cómo se define el orden del conjunto?
- 9. Servicio WCF e IDisposable, ¿limpio los objetos gestionados?
- 10. iPhone: CoreData, clasificación por 2 columnas
- 11. iPhone: encontrar una cadena en otra con el caso insensetive
- 12. Diferencia entre coredata y sqlite
- 13. NSOperation y CoreData Threading
- 14. ¿Cómo funciona el mapeo entre WinRT y los gestionados?
- 15. ¿Cómo hacer UnitTests con CoreData?
- 16. CoreData (para iPhone) almacenamiento de imágenes
- 17. ¿Usa CoreData o SQLite en iPhone?
- 18. iPhone CoreData: ¿cómo agrupar los resultados obtenidos por día?
- 19. Cómo almacenar objetos personalizados con struct en Coredata
- 20. Mejores prácticas de CoreData
- 21. ¿Cómo puedo recuperar múltiples objetos con JPA?
- 22. Copia de archivos iPhone CoreData de un proyecto a otro
- 23. recuperar objetos caducados en Ehcache
- 24. En Java, ¿cómo puedo verificar si una cadena contiene una subcadena (ignorando el caso)?
- 25. CoreData no pudo cumplir un error para cuando los objetos se actualizan mediante el servicio HTTP
- 26. Cómo usar @sum con CoreData
- 27. ¿Cómo uso la reflexión .Net para buscar una propiedad por nombre ignorando el caso?
- 28. Almacenar y recuperar objetos JavaScript en/desde MongoDB
- 29. ¿A qué enlaza el contexto de objetos gestionados de NSArrayController en Xcode 4?
- 30. Objetos de modelo CoreData en ARC utiliza retener
No olvides que colon after caseInsensitiveCompare: –
Probé esto con [SQL logging enabled] (http://stackoverflow.com/a/6428693/1402846). Resulta que iOS es lo suficientemente inteligente como para hacer la ordenación en SQL en lugar de en la memoria, al poner 'COLLATE NSCollateNoCase', o' COLLATE NSCollateLocaleSensitiveNoCase' para 'localizedCaseInsensitiveCompare:', después de 'ORDER BY'. Probado en simulador con iOS 6 y dispositivo con iOS 7. – Pang
Para aquellos de ustedes que buscan una solución> xCode 7 y Swift: '[NSSortDescriptor (clave:" cadena ", ascendente: verdadero, selector: #selector (NSString.caseInsensitiveCompare (_ :)))] ' – glenstorey