5

Estoy ordenando una matriz usando localizedStandardCompare:, que me da los objetos ordenados en el orden correcto y localizado. Ahora quiero usarlos en el index para un UITableView, lo que significa que necesito generar los títulos de las secciones. Como localizedStandardCompare: los localiza, una cadena que comienza con "Æ" se ordena con los objetos A.obtener la cadena utilizada por localizedStandardCompare cuando hizo una comparación

Así que si repito la matriz y hago una sección para cada primera letra, obtendré las secciones "A", "Æ", "A", "B", etc. ¿Hay alguna forma de obtener la cadena? que se usó para comparar, o al menos emularlo? He intentado convertir con diferentes codificaciones, pero ninguna me devolverá una "A" por "Æ".

¿Alguna otra sugerencia sobre cómo generar los títulos de sección para cadenas localizadas?

+2

no estoy seguro de cómo implementar esto, pero ¿ha comprobado 'UILocalizedIndexedCollation'? Enlace: http://developer.apple.com/library/ios/#documentation/iPhone/Reference/UILocalizedIndexedCollation_Class/UILocalizedIndexedCollation.html –

+0

¡Gracias! Nunca antes había notado esa clase y parece que es justo lo que necesito. –

+3

Si esto le funcionó, publíquelo como respuesta y márquelo como aceptado, de modo que esta pregunta no aparezca sin respuesta y otras personas con el mismo problema puedan encontrar la solución más fácilmente. – Greg

Respuesta

0

Puede utilizar el método CFStringTransform para obtener la cadena utilizada.

Por ejemplo, utilice el valor kCFStringTransformToLatin para obtener una cadena latina simple de la cadena de entrada.

Esto realmente no se comportará exactamente como el método localizedStandardCompare:, pero puede usar la cadena de transformación para generar un atributo adicional para el objeto que utiliza para la clasificación real.

Hay muchos buenos recursos sobre este tema:

Cuestiones relacionadas