6

Ich versuche, ein Prädikat zu machen, dieNSPredicate von Sonderzeichen - iPhone

Zum Beispiel Sonderzeichen enthält:

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

Hier werde ich alle Zutat erhalten, die mit beginnt (lassen Sie sich für idx sagen = 5) "e". Da ich meine App in Englisch und Französisch machen muss, beginnen einige Zutaten mit Sonderzeichen wie "é" oder sogar "œ" für "o". Wie kann ich diese Sonderzeichen in mein Prädikat aufnehmen?

Beste

Antwort

10

Ich glaube, Sie könnten für die „diakritische unempfindlich“ Flagge suchen, die NSPredicate unterstützt. Es ist genau wie das "c" -Flag, das Sie bereits verwenden, außer dass Sie ein "d" verwenden. Wie so:

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

Nun ist die Zeichenfolge „e“ wird auch „é“ entsprechen, „E“, „E“, und so weiter.

+0

Danke, es funktioniert wie ein Zauber ... außer dem œ! Hast du eine schöne Lösung für diesen? Ansonsten füge ich eine Ausnahme hinzu. – ncohen

+0

Das einzige, was mir einfällt, ist ein zusammengesetztes Prädikat. Erstellen Sie ein NSPredikat, das mit "o" übereinstimmt und ein anderes, das mit "œ" übereinstimmt. Dann verbinden Sie sie zusammen mit: '[NSCompoundPredicate orPredicateWithSubpredicates: [NSArray arrayWithObjects: p1, p2, nil]]'. –

+0

Brilliant Tipp ... vielen Dank. –