2015-09-04 7 views
1

Я пытаюсь определить, использовать ли имперские или метрические единицы автоматически, прежде чем просить пользователя включить службы определения местоположения. Я знаю, что вы не можете получить точные данные, но мне действительно нужны Соединенные Штаты или нет. Можете ли вы определить, какой магазин был загружен или использовать IP-адрес или что-то в этом роде?Можете ли вы определить, в какой стране находится ваш пользователь из приложения iOS?

+0

Чтобы сделать это, используйте один из встроенных форматировщиков для массы/расстояния/энергии и т. Д. (Среди многих других). Он автоматически форматирует значение/строку с настройками, которые пользователь выбрал. См. Документацию 'NSFormatter', чтобы выбрать соответствующий форматтер: https://developer.apple.com/library/prerelease/ios/documentation/Cocoa/Reference/Foundation/Classes/NSFormatter_Class/index.html#//apple_ref/occ/ кл/NSFormatter –

ответ

2

Вы, вероятно, ищете NSLocale:

let theLocale = NSLocale.autoupdatingCurrentLocale() 
    print(theLocale.objectForKey(NSLocaleMeasurementSystem)) 
    print(theLocale.objectForKey(NSLocaleUsesMetricSystem)) 

Посмотрите на ссылки NSLocale класса для дополнительных опций.

3

Вы можете использовать локаль устройства для достижения этой цели ...

Obj-C

NSLocale *locale = [NSLocale currentLocale]; 
NSString *countryCode = [locale objectForKey:NSLocaleCountryCode]; 

Swift

let locale = NSLocale.currentLocale() 
let countryCode = locale.objectForKey(NSLocaleCountryCode) 

коды стран в формате США (США), FR (Франция) и т. Д.

Обратите внимание, что языковой стандарт основан на настройках устройства пользователя и необязательно на текущем физическом местоположении устройства.

0

Swift 3

NSLocale.current 
NSLocale.Key.countryCode 

Да, досадно переименовано снова, у вас нет более важных вещей, чтобы посетить Swift команды ???