我对NSStrings有一个小问题。我正在制作应用程序,开发语言是英语。我有一个这样的字符串:
NSLocalizedString(@“取消”,@“取消字符串”);
我有意将此应用程序本地化为西班牙语,所以我需要这样做。现在,我遇到的问题是我需要将此特定字符串与另一个字符串进行比较。所以假设我有这个:
NSString *cancelString = NSLocalizedString(@"cancel", @"cancel string");
我可以将此字符串与其他字符串进行比较吗?:
[cancelString isEqualToString:@"cancel"];
它会正常工作吗?或者如果用户使用我的西班牙语应用程序会发生什么(所以cancelString说“取消”而不是“取消”)? equalToString只与应用程序的基本语言进行比较吗?
希望我很清楚。
答案 0 :(得分:4)
尽管可能有更好的方法来实现你在这里尝试的比较,你应该与NSLocalizedString(@“cancel”,@“whatever”)进行比较,因为在预处理器运行后它会最终改变并且''isEqualToString'只会比较方法的两个结果(字符串与字符串)。
NSString *cancelString = NSLocalizedString(@"cancel", @"cancel string");
[cancelString isEqualToString:NSLocalizedString(@"cancel", @"cancel string")];
应该有效
答案 1 :(得分:2)
您可以尝试本地化比较
NSString *cancelString = NSLocalizedString(@"cancel", @"cancel string");
bool areEqual = ([cancelString localizedCompare:@"cancel"] == NSOrderedSame);