【问题标题】:country picker swift 4 [duplicate]国家选择器 swift 4 [重复]
【发布时间】:2018-03-23 22:29:03
【问题描述】:

我想在 swift 4 中实现一个原生的 iOS 国家选择器。 目前我有一个包含国家代码的表格:

var countriesCodes = NSLocale.isoCountryCodes as [String]

我实现了委托,但数据源有问题。 国家名称中的各个国家代码如何转换?

【问题讨论】:

  • 你是如何实现委托的,你的数据源有什么问题?

标签: ios swift pickerview


【解决方案1】:

您可以使用 Foundation (documentation here) 中提供的以下函数将每个国家代码键转换为其本地化显示名称:

Locale.current.localizedString(forRegionCode:)
// "NZ" -> "New Zealand"

您可以使用flatMap 将您的国家/地区代码数组转换为显示名称:

let countryNames = countriesCodes.flatMap(
    Locale.current.localizedString(forRegionCode:))

尽管您可能希望将 ISO 国家/地区代码及其本地化显示名称组合在一起,这样会更有用:

let countryCodesAndNames = countriesCodes.flatMap { code in
    Locale.current.localizedString(forRegionCode: code).map { (code, $0) }
}
// countryCodesAndNames is type [(String, String)]
// which is (ISO code, displayName)
// eg.
print(countryCodesAndNames[0])
// prints ("AC", "Ascension Island")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-16
    相关资源
    最近更新 更多