2011-12-13 6 views
0

á、à、ç、ô、é、é、などのような外部アクセントを持つNSStringを比較する必要がありますが、文字列を記録するとアクセントのある文字が壊れます。アクセント付きNSStringを読むには?

if (myString == @"Elevação") 

    { 
    do something nice...  
    } 

ログ私は上記のコードからNSLog(@"myString = %@", myString);を使用して、取得していますが、あなたの助けのためにmyString = Eleva..o

おかげである:私はこのように、比較のために全体NSStringのを渡すにはどうすればよい

+0

あなたはあなただけの正規化した値を記録したいか、また、正規化された比較をしたいと言っていますか? – Joe

+1

文字列は ' - [NSString isEqualToString:]'を使用して比較する必要があります – Brian

+0

正規化比較を行いたいと思います。 – Winston

答えて

3

は、比較の両側が同じ文字列の同じインスタンスである場合にのみ成功しますObjective-Cで==介して2つのNSStringのポインタを比較[someString isEqualToString:someOtherString];

+0

NSStringsのUTF-16エンコーディングも参照してください。 – PengOne

+1

両方のオプション:1)if([myString compare:@ "Elevaçãooptions:NSDiacriticInsensitiveSearch] == NSOrderedSame)および2)[someString isEqualToString:someOtherString];完璧に働いた!ありがとう、たくさんの人!ここで私は最高のObjective-C教師を揃えています! – Winston

1

試してみてください。あなたは文字列が同じ内容を持つ2つの異なるNSStringのインスタンスであるかもしれない場合は、trueに評価する式をしたい場合は

は、あなたが(MrMusicが示唆したように)NSStringisEqualToString:メソッドを使用する必要があります。

ログに任意のユニコードテキストを印刷する方法がわかりません。デバッグの目的でインターフェイスにUILabelを一時的に追加し、その文字列にtextプロパティを設定することを検討することもできます。

+0

両方のオプション:1)if([myString compare:@ "Elevaçãooptions:NSDiacriticInsensitiveSearch] == NSOrderedSame)および2)[someString isEqualToString:someOtherString];完璧に働いた!ありがとう、たくさんの人!ここで私は最高のObjective-C教師を揃えています! – Winston

3

あなたが欲しい:

if ([myString compare:@"Elevação" options:NSDiacriticInsensitiveSearch] == NSOrderedSame) 
+0

両方のオプション:1)if([myString compare:@ "Elevaçãooptions:NSDiacriticInsensitiveSearch] == NSOrderedSame)および2)[someString isEqualToString:someOtherString];完璧に働いた!ありがとう、たくさんの人!ここで私は最高のObjective-C教師を揃えています! – Winston

関連する問題