Есть ли встроенный механизм взаимозаменяемости Miles / KM для iPhone? - PullRequest
6 голосов
/ 22 февраля 2010

В настоящее время я работаю над приложением для iPhone на основе карты и хочу показать некоторую информацию пользователю. Для моего приложения имеет смысл иметь какую-то настройку, где пользователь может выбрать мили или километры. Существует ли встроенный механизм (возможно, похожий на локализацию строк) для такого переключения значений, чтобы я мог избегать блока if каждый раз, когда я хочу что-то отобразить пользователю?

Ответы [ 2 ]

12 голосов
/ 23 февраля 2010

Взгляните на NSLocale . Вы должны иметь возможность получить текущую локаль, используя [NSLocale currentLocale]. Затем вызовите [theLocale objectForKey: NSLocaleMeasurementSystem] и посмотрите на результаты, которые должны сказать вам, использует ли локаль пользователей метрическую систему. Документы для NSLocale имеют раздел констант, в котором перечислены все значения, которые можно передать в локаль.

Используя это, вы создадите свою собственную функцию, которая может быть использована в вашей программе для возврата вашего расстояния определенным языковым способом.

0 голосов
/ 05 апреля 2014

На основании моего быстрого теста NSLocaleUsesMetricSystem может не работать, если в регионе пользователя используются километры или мили.

В Великобритании расстояния указаны в милях, а скорость в милях в час, но NSLocaleUsesMetricSystem возвращает 1.

В США NSLocaleUsesMetricSystem возвращает 0, что является правильным (расстояние в милях и скорость в милях в час).

В Индии NSLocaleUsesMetricSystem возвращает 1, что снова правильно (расстояние в километрах и скорость в км / ч).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...