本地化和"格式字符串不是字符串文字"

时间:2017-03-07 02:25:31

标签: xcode macos cocoa

我知道有很多问题和答案,但我认为我的情况不同,因为它涉及本地化。这可能就是为什么我要理解为什么我无法解决这个警告。

我得到"格式不是字符串文字"警告以下代码:

[NSString stringWithFormat:[[NSBundle mainBundle] localizedStringForKey:@"TestCompleted2"
value: @"The test on %@ has completed." table: @"Main"], itemName]

Main.strings:

"TestCompleted2" = "The test on %@ has completed.";

我不明白A)为什么抛出这个错误而且B)我怎么能解决它。

它显然有填充数据,所以不应该这样。我假设它是因为localizedStringForKey可以返回不同格式占位符的不同字符串,这就是它抛出错误的原因。那是对的吗?如果是这样,我该如何解决?

1 个答案:

答案 0 :(得分:1)

最后有机会坐下来调试这个。这是由于xcconfig中的-Wformat=2。关于它的作用explained herehttp://docs.aws.amazon.com/sdk-for-net/v2/developer-guide/net-dg-config-creds.html

感谢大家一起来看看这个。希望这个答案能够帮助别人。