En mi aplicación actual de un UISearchBarController
estoy usando [NSString compare:]
dentro del método filterContentForSearchText:scope:
delegado a devolver los objetos relevantes en función de su propiedad de nombre a los resultados UITableView
empieza a escribir.o comparar dentro de un clúster grafema en coreano
Hasta ahora, esto funciona muy bien en inglés y coreano, pero lo que me gustaría poder hacer es buscar dentro de los clústeres de caracteres definidos de NSString
. Esto solo es aplicable a un puñado de idiomas, de los cuales el coreano es uno.
En inglés, compare:
devuelve resultados nuevos después de cada letra que ingrese, pero en coreano los resultados se generan una vez que completa un clúster de grafemas reconocido. Me gustaría poder buscar a través de mi propiedad de nombre de objetos coreanos a través de los elementos individuales que forman una sílaba.
¿Alguien puede arrojar alguna luz sobre cómo acercarse a esto? Estoy seguro de que tiene algo que ver con buscar caracteres UTF16 manualmente o utilizando una clase de nivel inferior.
¡Salud!
Aquí está un ejemplo específico que simplemente no está funcionando:
`NSString *string1 = @"이";
`NSString *string2 = @"ㅣ";
NSRange resultRange = [[string1 decomposedStringWithCanonicalMapping] rangeOfString: [string2 decomposedStringWithCanonicalMapping] options:(NSLiteralSearch)];
El resultado es siempre NSNotFound, con o sin decomposedStringWithCanonicalMapping
.
¿Alguna idea?
Lawrence, esa información es fantástica. Hay aplicaciones de iPhone en coreano que parecen hacer lo que he estado intentando; pero supongo que estaba bajo la suposición errónea de cómo se almacena el coreano en UTF8/16. Gracias por su respuesta, definitivamente ha arrojado algo de luz sobre mi consulta. – Jessedc
Gracias por su ayuda Lawrence, he aceptado su respuesta; fue un gran paso en la dirección correcta. – Jessedc