如何在 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 中获取和更新 Healthkit 中的高度?