2

NSStringsに関して小さな質問があります。私は現在アプリを作っています。開発言語は英語です。私はこのような文字列を持っています:

NSLocalizedString(@ "cancel"、@ "cancel string");

後でこのアプリをスペイン語にローカライズするつもりなので、そうする必要があります。今、私が抱えている問題は、この特定の文字列を別の文字列と比較する必要があるということです。だから私がこれを持っているとしましょう:

NSString *cancelString = NSLocalizedString(@"cancel", @"cancel string");

この文字列をこのような他の文字列と比較できますか?:

[cancelString isEqualToString:@"cancel"];

そしてそれはうまくいくでしょうか?または、ユーザーがスペイン語で私のアプリを使用している場合はどうなりますか(cancelStringは「キャンセル」ではなく「キャンセル」と言います)?equalToStringはアプリの基本言語とのみ比較されますか?

私が明確になっていることを願っています。

4

2 に答える 2

4

ここで実行しようとしている比較を実現するためのより良い方法があるという事実にもかかわらず、プリプロセッサの実行後に変更されるため、NSLocalizedString(@ "cancel"、@ "whatever")と比較する必要があります。 isEqualToString'は、メソッドの2つの結果(文字列と文字列)のみを比較します。

NSString *cancelString = NSLocalizedString(@"cancel", @"cancel string");

[cancelString isEqualToString:NSLocalizedString(@"cancel", @"cancel string")];

動作するはずです

于 2012-07-30T21:45:42.667 に答える
2

あなたはlocalizedCompareを試すことができます

NSString *cancelString = NSLocalizedString(@"cancel", @"cancel string");
bool areEqual = ([cancelString localizedCompare:@"cancel"] == NSOrderedSame);

参照:https ://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html#//apple_ref/occ/instm/NSString/localizedCompare :

于 2014-03-20T13:29:32.493 に答える