2011-02-08 122 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

相關問題