在我的程序中的某些屏幕中,本地化字符串可以正常工作,有些则不然。 (Xcode 4.2)
我做了什么:
在“资源”
在我的.h文件中,在@interface ClassViewController里面:UIViewController {}我添加了:
IBOutlet UILable *labelName;
同样在.h文件中,我添加了
property (nonatomic, assign) IBOutlet UILabel *labelName;
在.m文件中,我添加了:
@synthetize labelName;
仍然在.m文件中,我在里面添加了“ - (foid)dealloc”:
[labelName release];
In - (void)viewDidLoad我添加了:
self.labelName.text = [NSString stringWithFormat:@"KEY"];
最后,在xib文件中(使用Interface manager),我将标签对象与变量链接起来。
所以,正如我所说,这种方法适用于某些屏幕,而不适用于其他屏幕。有什么想法吗?
解决方案:
那是一个多么愚蠢的错误。输入文字的行应为:NSLocalizedString(@"KEY", nil);
答案 0 :(得分:4)
改为使用:
self.labelName.text = NSLocalizedString(@"KEY", "");
来自文档:
答案 1 :(得分:1)
正如文斯所指出的,你需要使用NSLocalizedString函数。所以在这种情况下,6中的代码将是:
self.labelName.text = NSLocalizedString(@"The key for this label",@"Some comment");
那应该适合你。
答案 2 :(得分:1)
在 XCode-4.2 中,您可以执行以下操作:
它有效,希望它能帮到你。
答案 3 :(得分:0)
你认为这条线有什么作用?
self.labelName.text = [NSString stringWithFormat:@"KEY"];
因为它在功能上等同于写这个:
self.labelName.text = @"KEY";
但我怀疑你打算写的是这个:
self.labelName.text = NSLocalizedString(@"KEY", @"description");