如果这是常见问题解答,我很抱歉,但下面这两个声明有什么区别?我一直在寻找谷歌和苹果文档,我似乎无法找到一个与众不同的差异。我最好的猜测是本地化的一个被优化以在运行时更新。有人可以为我澄清一下吗?
NSString *title1 = [NSString localizedStringWithFormat:@"%@, %@", @"1", @"2"];
NSString *title2 = [NSString stringWithFormat:@"%@, %@", @"1", @"2"];
非常感谢
加里
答案 0 :(得分:3)
阅读docs on the method中的讨论。它详细说明了它的用途。其目的是应用区域设置格式,例如正确的小数分隔符(浮点数中的句点与逗号)。请阅读Formatting String Objects了解详情。
答案 1 :(得分:3)
来自NSString类参考:
此方法相当于使用initWithFormat:locale:并将[[NSUserDefaults standardUserDefaults] dictionaryRepresentation]作为locale参数传递。
作为格式化的示例,此方法根据%f和%d替换中的区域设置替换小数,并在必要时调用descriptionWithLocale:而不是描述。
此代码摘录从另一个字符串和float:
创建一个字符串 NSString *myString = [NSString localizedStringWithFormat:@"%@: %f\n", @"Cost", 1234.56]
;
如果区域设置为en_US,则结果字符串的值为“Cost:1234.560000 \ n”;如果区域设置为fr_FR,则结果字符串的值为“Cost:1234,560000 \ n”。