2016-12-01 19 views
1

я скор 2 я получал SystemLocale с помощью сильфона код:Как получить systemLocaleCountryCode в быстром 3?

let systemLocaleCountryCode = NSLocale.systemLocale().objectForKey(NSLocaleCountryCode) as? String 

, но теперь я в быстром 3, я получаю сильфона сообщение об ошибке:

cannot call value of non function type locale

то раз я изменил его на:

let systemLocaleCountryCode = NSLocale.systemLocale.objectForKey(NSLocaleCountryCode) as? String 

Я получил еще одну ошибку:

value of type Locale has no member objectForKey

В чем проблема? Как это исправить?

+0

ли 'NSLocale.system.regionCode' вернуть ожидаемое значение? – vadian

+0

Связанный: [Как получить код страны с использованием NSLocale в Swift 3] (http://stackoverflow.com/questions/39596238/how-to-get-country-code-using-nslocale-in-swift-3) –

+0

@ MartinR, спасибо – david

ответ

0

В Swift3 изменения в

let systemLocaleCountryCode = (NSLocale.system as NSLocale).object(forKey: .countryCode) as? String 
1

использовать как

if let systemLocaleCountryCode = (Locale.system as NSLocale).object(forKey: .countryCode) as? String { 
print(systemLocaleCountryCode) 
} 
+0

Спасибо за ваш ответ, но теперь я получил эту ошибку: система недоступна, если вы используете локаль пользователя или нуль, в зависимости от варианта использования – david

0

Вы можете попробовать это:

if let systemLocaleCountryCode = (Locale.current as NSLocale).object(forKey: .countryCode) as? String 
    { 
     print(systemLocaleCountryCode) 
    }