我有一個帶有Settings.bundle的iPhone應用程序。該捆綁包含默認值必須爲區域設置的項目(例如:「公制單位」必須爲「關閉」美國和巴西「等」)。XCode/iOS中特定於語言環境的默認設置
有沒有辦法保持設置的默認值locale依賴?
我有一個帶有Settings.bundle的iPhone應用程序。該捆綁包含默認值必須爲區域設置的項目(例如:「公制單位」必須爲「關閉」美國和巴西「等」)。XCode/iOS中特定於語言環境的默認設置
有沒有辦法保持設置的默認值locale依賴?
前幾天我有類似的問題。從我所知道的情況來看,不同區域的默認值是不可能的,所以我用不同的方式解決了這個問題。
我有一個多值設置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];
}
你看過字符串表嗎?您可以將其用於您的目的。另外檢出this documentation
你當然可以做的,是設置應用程序首次啓動時的默認值(或者當語言環境發生變化時)。
「公制單位」使用stringsTable很容易,但改變的翻譯基於locale的默認值不是。我可以手工設置它,但是當用戶第一次打開我的應用程序之前打開設置時會導致一個小錯誤(當我帶上我的iPod時,我已經使用Nike + iPod完成了此操作)。 – 2011-02-09 00:01:20
你的問題到底出在什麼地方?你不能使用字符串依賴於語言環境來控制其他非字符串設置的事實嗎? – 2011-02-09 07:36:22