2011-02-08 133 views

回答

3

前几天我有类似的问题。从我所知道的情况来看,不同区域的默认值是不可能的,所以我用不同的方式解决了这个问题。

我有一个多值设置DefaultFahrenheitCelsius。默认情况下,它被设置为默认值,这意味着我想出设置

事情是这样的基础上,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]; 
} 
0

你看过字符串表吗?您可以将其用于您的目的。另外检出this documentation

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

+0

“公制单位”使用stringsTable很容易,但改变的翻译基于locale的默认值不是。我可以手工设置它,但是当用户第一次打开我的应用程序之前打开设置时会导致一个小错误(当我带上我的iPod时,我已经使用Nike + iPod完成了此操作)。 – 2011-02-09 00:01:20

+0

你的问题到底出在什么地方?你不能使用字符串依赖于语言环境来控制其他非字符串设置的事实吗? – 2011-02-09 07:36:22

相关问题