Sto costruendo un'app in xcode4.3/Objective-C e ho riscontrato un problema durante il tentativo di ordinare un NSMutableArray. Lo compilerò con stringhe da un database SQLite. Il problema si verifica con i caratteri svedesi å, ä e ö.Come posso ordinare una serie di stringhe alfabeticamente quando le stringhe contengono åäö?
L'array orded dovrebbe essere simile a questo: as, br, ol, st, år, ög, ös.
Ma quando utilizzo il selettore confronta l'ordine è questo: come, år, br, ol, ög, ös, st.
E quando uso localizedCompare l'ordine cambia in: come, år, br, ög, ol, ös, st.
In base ai thread precedenti, la soluzione localizzata dovrebbe essere la soluzione, ma non riesco a farlo funzionare correttamente. Se utilizzo il terminale per accedere al database sqlite e digito ORDINA, otterrò il risultato corretto. Il mio problema potrebbe essere correlato ad alcune impostazioni in xcode o nel simulatore iphone, poiché nessuno dei due visualizza l'ordine corretto? O è localizzato? Confronta la strada sbagliata? Accetterò felicemente qualsiasi soluzione alternativa finché il lavoro verrà completato. Grazie.
Potete fornire il codice che si utilizza per fare questo? – David
Vorrei controllare se 'localizedStandardCompare:' è diverso. In caso contrario, potrebbe essere necessario implementare il proprio comparatore (o dato che si menziona un DB SQLite ... se si utilizza Core Data è possibile lasciare che il DB esegua l'ordinamento impostando i descrittori di ordinamento su una richiesta di recupero). Il confronto localizzato – rickster
dovrebbe funzionare, ma solo se la tua locale (nel tuo computer) è impostata su Svezia. La cosa strana che ottengo è che se registro l'array le parole con caratteri speciali non vengono stampate ma vengono visualizzate come codici unicode. Se registro le singole parole, esse accedono correttamente e nell'ordine corretto. – rdelmar