iOS开发如何复用Main.strings已有本地化字符串为新控件赋值
结论
完全可以通过读取Main.strings中已有的字符串赋值给新标签,你提到的nuq-zS-uwp是Storyboard中oldLabel对应的Object ID,.text是该控件文本属性对应的后缀,直接以nuq-zS-uwp.text作为key读取本地化表即可。
实现代码
Swift 版本
// 指定table为Main,对应Main.storyboard的本地化字符串文件Main.strings newLabel.text = Bundle.main.localizedString(forKey: "nuq-zS-uwp.text", value: nil, table: "Main")
Objective-C 版本
newLabel.text = [[NSBundle mainBundle] localizedStringForKey:@"nuq-zS-uwp.text" value:nil table:@"Main"];
注意事项
- 不要修改oldLabel在Storyboard中的Object ID,否则key失效会导致读取不到对应文本
- 后续更新oldLabel的本地化文本时,newLabel的文本会同步更新,无需额外修改代码
- 长期维护更推荐把公共复用的本地化字符串提取到
Localizable.strings统一管理,两个控件都用同一个自定义key读取,避免依赖Storyboard自动生成的随机Object ID
内容的提问来源于stack exchange,提问作者tech_human
相关产品推荐
相关产品推荐

