如何在 swift 3 中获取 systemLocaleCountryCode?

Posted

技术标签:

【中文标题】如何在 swift 3 中获取 systemLocaleCountryCode?【英文标题】:How to get systemLocaleCountryCode in swift 3? 【发布时间】:2016-12-01 11:40:49 【问题描述】:

我 swift 2 我正在使用以下代码获取 systemLocale:

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

但现在我在 swift 3 中,我收到以下错误:

不能调用非函数类型locale的值

然后一旦我将其更改为:

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

我收到另一个错误:

Locale 类型的值没有成员 objectForKey

有什么问题?如何解决?

【问题讨论】:

NSLocale.system.regionCode 是否返回预期值? 相关:How to get country code using NSLocale in Swift 3 @MartinR,谢谢 @vadian 谢谢你的评论,不,它没有 【参考方案1】:

像这样使用

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

【讨论】:

感谢您的回答,但现在我收到此错误:系统不可用根据用例考虑使用用户的语言环境或 nil 代替【参考方案2】:

在 Swift3 中 改为

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

【讨论】:

【参考方案3】:

你可以试试这个:

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

【讨论】:

以上是关于如何在 swift 3 中获取 systemLocaleCountryCode?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 3 中使用 NSLocale 获取国家代码

如何在 swift 3 中获取通知授权状态?

如何在 swift 3 中获取和更新 Healthkit 中的高度?

如何在swift 3中从字典中获取数组

如何从字符串 Swift 3 中获取 ALAssetURL?

如何在核心数据swift 3中同时保存和获取