Nel mio attuale implementazione di un UISearchBarController
sto usando [NSString compare:]
all'interno del metodo filterContentForSearchText:scope:
delegato per restituire gli oggetti rilevanti in base alla loro proprietà nome ai risultati UITableView
come si inizia a digitare.Cerca o confrontare all'interno di un cluster Grapheme in coreano
Finora questo funziona perfettamente in inglese e coreano, ma quello che mi piacerebbe essere in grado di fare è cercare all'interno dei cluster di caratteri definiti da NSString
. Questo è applicabile solo per una manciata di lingue, di cui il coreano è uno.
In inglese, compare:
restituisce nuovi risultati dopo ogni lettera inserita, ma in coreano i risultati vengono generati una volta completato un cluster grafema riconosciuto. Mi piacerebbe essere in grado di cercare attraverso la mia proprietà nome oggetti coreani tramite i singoli elementi che compongono una sillaba.
Qualcuno può far luce su come affrontare questo? Sono sicuro che abbia qualcosa a che fare con la ricerca attraverso caratteri UTF16 manualmente o utilizzando una classe di livello inferiore.
Cheers!
Ecco un esempio specifico che non è solo lavorando:
`NSString *string1 = @"이";
`NSString *string2 = @"ㅣ";
NSRange resultRange = [[string1 decomposedStringWithCanonicalMapping] rangeOfString: [string2 decomposedStringWithCanonicalMapping] options:(NSLiteralSearch)];
Il risultato è sempre NSNotFound, con o senza decomposedStringWithCanonicalMapping
.
Qualche idea?
Lawrence, quell'informazione è fantastica. Ci sono app per iPhone in coreano che sembrano fare ciò che sto tentando; ma suppongo di essere sotto ipotesi errata su come il coreano sia memorizzato in UTF8/16. Grazie per la risposta, ha sicuramente chiarito la mia domanda. – Jessedc
Grazie per il vostro aiuto Lawrence, ho accettato la tua risposta; è stato un grande passo nella giusta direzione. – Jessedc