XCode / iOS中特定于区域设置的默认设置

时间:2011-02-08 20:12:03

标签: iphone xcode localization settings

我有一个带有Settings.bundle的iPhone应用程序。此捆绑包具有必须依赖于区域设置的默认值的项目(例如:“度量单位”对于美国必须为“关闭”,对于巴西等为“开启”等。)

无论如何都要保持设置'默认依赖于语言环境?

2 个答案:

答案 0 :(得分:3)

前几天我遇到了类似的问题。据我所知,不可能为不同的区域设置不同的默认值,所以我以不同的方式解决了它。

我有Default FahrenheitCelsius的多值设置。默认情况下,它设置为默认值,这意味着我根据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

您当然可以做的是,首次启动应用时设置默认值(或者当语言环境发生变化时)。