Estoy construyendo una aplicación en xcode4.3/Objective-C y me he encontrado con un problema al intentar ordenar un NSMutableArray. Lo poblaré con cadenas de una base de datos sqlite. El problema ocurre con los caracteres suecos å, ä y ö.¿Cómo puedo ordenar una matriz de cadenas alfabéticamente cuando las cadenas contienen åäö?
La matriz ordenada debería verse más o menos así: como, br, ol, st, år, ög, ös.
Pero cuando uso el selector compare el orden es el siguiente: as, år, br, ol, ög, ös, st.
Y cuando uso localizedCompare el cambio de orden a: as, år, br, ög, ol, ös, st.
De acuerdo con los hilos más antiguos, la solución localizada debe ser la solución, pero no puedo hacer que funcione correctamente. Si uso el terminal para acceder a la base de datos sqlite y escribo ORDEN obtendré el resultado correcto. ¿Podría mi problema estar relacionado con algunas configuraciones en xcode o el simulador de iphone, ya que ninguno muestra el orden correcto? ¿O está localizado el camino equivocado? Aceptaré felizmente cualquier solución alternativa mientras haga el trabajo. Gracias.
¿Puede proporcionar el código que se utiliza para hacer esto? – David
Verificaría si 'localizedStandardCompare:' es diferente. En su defecto, es posible que necesite implementar su propio comparador (o desde que menciona un DB de SQLite ... si está utilizando Core Data, puede dejar que el DB haga la ordenación configurando sort descriptors en una solicitud de búsqueda). – rickster
la comparación localizada debería funcionar, pero solo si su configuración regional (en su máquina) está configurada en Suecia. Lo extraño que obtengo es que si registro la matriz, las palabras con caracteres especiales no se imprimen, pero se muestran como códigos Unicode. Si registro las palabras individuales, se registran correctamente y en el orden correcto. – rdelmar