将NSStrings与Ä,Ö,Ü进行比较

时间:2012-04-27 16:18:21

标签: objective-c ios cocoa-touch nsstring diacritics

我面临一个奇怪的问题。 我有一个UITextField和一个NSString,我想使用isEqualtoString方法进行比较。 只要弦乐不包括德国元音,如Ä,Ö,Ü一切正常,但如果他们这样做,它就不再起作用了。 NSLog正确地给出了Umlaute-Strings。

 NSLog([currentAnswer lowercaseString]);
 NSLog([[self.antwortTextField text]lowercaseString]);

if ([[currentAnswer lowercaseString] isEqualToString:[[self.antwortTextField text]lowercaseString]]) {......}

我是否必须以某种方式格式化字符串?这个问题让我疯了!

1 个答案:

答案 0 :(得分:4)

您可以使用高级NSString比较方法,例如:

- (NSComparisonResult)compare:(NSString *)aString
                      options:(NSStringCompareOptions)mask
                        range:(NSRange)range
                       locale:(id)locale

然后指定高级选项。您可能感兴趣的具体选项:

  • NSCaseInsensitiveSearch
  • NSDiacriticInsensitiveSearch
  • NSWidthInsensitiveSearch