6

我試圖做一個謂詞,包含特殊字符NSPredicate - iPhone

例如:

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

在這裏,我會得到所有開頭的成分(讓說的IDX = 5)'e'。由於我必須用英語和法語來做我的應用程序,因此某些成分的特殊字符如'é'或'œ'以'o'開頭。我如何在謂詞中包含這些特殊字符?

最佳

回答

10

我想你可能會尋找一個NSPredicate支持「音調符號不敏感」的標誌。這就像你已經使用的「c」標誌,除了你使用「d」。像這樣:

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

現在字符串「E」也將匹配「E」,「E」,「E」,等等。

+0

謝謝,它的功能就像一個魅力......除了œ!你有這個好的解決方案嗎?否則,我會添加一個異常。 – ncohen 2010-03-19 03:30:56

+0

我唯一能想到的就是使用複合謂詞。創建一個NSPredicate以匹配「o」和另一個匹配「œ」。然後將它們加在一起:'[NSCompoundPredicate orPredicateWithSubpredicates:[NSArray arrayWithObjects:p1,p2,nil]]'。 – 2010-03-19 03:36:50

+0

精彩的小費......非常感謝。 – 2015-03-10 09:38:17