2012-04-27 9 views
3

私は奇妙な問題に直面しています。 私は、isEqualtoStringメソッドを使って比較したいUITextFieldとNSStringを持っています。 文字列にはÄ、Ö、Üなどのドイツ語のUmlauteは含まれていない限り、すべて正常に動作しますが、それを行うともう機能しません。 NSLogはUmlaute-Stringsを正しく出力します。NSStringをÄ、Ö、Üと比較しています

何とか文字列をフォーマットする必要がありますか?この問題は私を狂ってしまう!

+0

の可能重複[特殊文字を含む配列をソートする - iPhone](http://stackoverflow.com/質問/ 2492379/sort-an-array-with-special-characters-iphone) –

答えて

4

次のような高度なNSString比較方法、使用することができます。

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

をして、高度なオプションを指定します。あなたがに興味がある可能性があり、特定のオプション:

  • NSCaseInsensitiveSearch
  • NSDiacriticInsensitiveSearch
  • NSWidthInsensitiveSearch
+0

申し訳ありません私はObjective-Cが比較的新しいです。どうすればいい?私はそれが最初にうまくいかない理由を全く知りません。ドイツ語のようなものではありません;-) – JohannesRu

+1

おそらく 'bool isEqual = NSOrderedSame == [str1比較:str2オプション:NSCaseInsensitiveSearch | NSDiacriticInsensitiveSearch | NSWidthInsensitiveSearch]; '、またはオプションの組み合わせです。その理由は言語かもしれませんし、ロケール、エンコーディングまたは... – justin

+0

オクラホマ大変ありがとうございます! – JohannesRu

関連する問題