2012-04-27 95 views
3

我面临一个奇怪的问题。 我有一个UITextField和一个NSString,我想使用isEqualtoString方法进行比较。 只要字符串不包括德语,如Ä,Ö,Ü一切正常,但如果他们这样做不再工作。 NSLog正确地发出了Umlaute字符串。比较NSStrings与Ä,Ö,Ü

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

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

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

+0

可能重复(http://stackoverflow.com/ questions/2492379/sort-an-array-with-special-characters-iphone) – 2012-04-27 17:16:40

回答

4

您可以使用先进的NSString比较方法,如:

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

,然后指定高级选项。具体的选项,你可能感兴趣的:的[排序有特殊字符数组 - iPhone]

  • NSCaseInsensitiveSearch
  • NSDiacriticInsensitiveSearch
  • NSWidthInsensitiveSearch
+0

对不起,我对Objective-C比较陌生。我会怎么做?我完全不知道为什么它不起作用。这不像德语是一种古老的语言或任何东西;-) – JohannesRu 2012-04-27 16:22:56

+1

也许'bool isEqual = NSOrderedSame == [str1比较:str2选项:NSCaseInsensitiveSearch | NSDiacriticInsensitiveSearch | NSWidthInsensitiveSearch];',或者某些选项的组合。原因可能是语言,或者它可能是语言环境,或编码或... – justin 2012-04-27 16:28:03

+0

好吧我知道了,非常感谢你! – JohannesRu 2012-04-27 16:42:01

相关问题