我有一个带有Settings.bundle的iPhone应用程序。此捆绑包具有必须依赖于区域设置的默认值的项目(例如:“度量单位”对于美国必须为“关闭”,对于巴西等为“开启”等。)
无论如何都要保持设置'默认依赖于语言环境?
答案 0 :(得分:3)
前几天我遇到了类似的问题。据我所知,不可能为不同的区域设置不同的默认值,所以我以不同的方式解决了它。
我有Default
Fahrenheit
和Celsius
的多值设置。默认情况下,它设置为默认值,这意味着我根据NSLocale设置在代码中找出单位
这样的事情:
- (MBUnit)temperatureUnit {
MBUnit tmp = [ud integerForKey:MBUDKeyTemperatureUnit];
if (tmp == MBTemperatureDefaultUnit) {
MBUnit defaultTemperatureUnit;
BOOL isMetric = [[[NSLocale currentLocale] objectForKey:NSLocaleUsesMetricSystem] boolValue];
if (isMetric) {
defaultTemperatureUnit = MBTemperatureCelsiusUnit;
}
else {
defaultTemperatureUnit = MBTemperatureFahrenheitUnit;
}
return defaultTemperatureUnit;
}
return [ud integerForKey:MBUDKeyTemperatureUnit];
}
答案 1 :(得分:0)
你看过stringsTable吗?您可以将它用于您的目的。另请查看this documentation
您当然可以做的是,首次启动应用时设置默认值(或者当语言环境发生变化时)。