Подтвердить что ты не робот

Как узнать, какая система измерения по умолчанию (имперская или метрическая) в iOS?

Как узнать, какая система измерения по умолчанию (имперская или метрическая) на iOS?

Как мне получить это предпочтение от настроек устройства, поэтому я знаю, что показывать в моем приложении?

спасибо

4b9b3361

Ответ 1

NSLocale может сказать вам:

NSLocale *locale = [NSLocale currentLocale]; 
BOOL isMetric = [[locale objectForKey:NSLocaleUsesMetricSystem] boolValue];

Только три страны не используют метрическую систему: США, Либерия и Мьянма. Позднее использует свою собственную систему, первые два используют Имперские единицы.

В документации на яблоки говорится (внимание мое):

NSLocaleUsesMetricSystem

Ключ для флага, который указывает, использует ли языковой стандарт метрическую систему. Соответствующим значением является объект Boolean NSNumber. Если значение НЕТ, обычно вы можете использовать американские единицы измерения (например, уставную милю).

Доступен в iOS 2.0 и более поздних версиях.

Ответ 2

здесь быстрая версия

var locale = NSLocale.currentLocale()
let isMetric = locale.objectForKey(NSLocaleUsesMetricSystem) as! Bool

Ответ 3

@DarkDust ответ для swift3

//User region setting return
let locale = Locale.current //NSLocale.current

//Returns true if the locale uses the metric system 
let isMetric = locale.usesMetricSystem

Ответ 4

Для быстрого 3

    let locale = NSLocale.current
    let isMetric = locale.usesMetricSystem

Ответ 5

Вероятно, вы должны просто настроить параметр в своем приложении и позволить своим пользователям выбирать - это то, что Apple делает в приложении Weather.

Если вы хотите выбрать разумное значение по умолчанию, вы можете посмотреть на локаль. Если это США, выберите имперский, иначе выберите метрику. Это эвристика, иногда это будет неправильно, но это просто по умолчанию, которое можно изменить.