6

que estoy tratando de hacer un predicado que incluye caracteres especialesNSPredicate de caracteres especiales - iPhone

Por ejemplo:

[[myIngredients filteredSetUsingPredicate:[NSPredicate predicateWithFormat:@"name BEGINSWITH[c] %@", [alphabet objectAtIndex:idx]]]; 

Aquí voy a conseguir todos los ingredientes que se inicia con (por no decir para IDX = 5) 'e'. Como tengo que hacer mi aplicación en inglés y francés, algunos ingredientes comienzan con caracteres especiales como 'é' o incluso 'œ' para 'o'. ¿Cómo puedo incluir estos caracteres especiales en mi predicado?

Mejor

Respuesta

10

Creo que podría estar buscando la bandera “diacrítica insensible” que soporta NSPredicate. Es como la bandera "c" que ya está usando, excepto que usa una "d". De este modo:

… predicateWithFormat:@"name BEGINSWITH[cd] %@", … 

Ahora la cadena “e” también coincidirán con “E”, “E”, “E”, y así sucesivamente.

+0

Gracias, funciona como un encanto ... a excepción de la œ! ¿Tienes alguna buena solución para este? De lo contrario, agregaré una excepción. – ncohen

+0

Lo único que se me ocurre es usar un predicado compuesto. Cree una NSPredicate para que coincida con "o" y otra para que coincida con "œ". Luego únelos junto con: '[NSCompoundPredicate orPredicateWithSubpredicates: [NSArray arrayWithObjects: p1, p2, nil]]'. –

+0

Brillante punta ... muchas gracias. –