如何减少从 NSLocale.Key.currencyCode 返回的货币代码数量
How to reduce the amount of currency codes you get back from NSLocale.Key.currencyCode
我有一个 ios 应用程序,我试图让用户 select 他们想使用哪种货币。现在我有完整的货币列表,但似乎有一些重复项,例如:
有没有办法过滤掉其他的?美元不是唯一具有倍数的美元,有些美元还列出了日期范围。
我确定有一些内置方法可以执行此操作,但到目前为止我的搜索没有为我指明正确的方向。
这是我正在做的事情:
let locale = NSLocale.current as NSLocale
let currencyCodesArray = NSLocale.isoCurrencyCodes
var currencies = [CurrencyModel]()
for currencyCode in currencyCodesArray {
let currencyName = locale.displayName(forKey:
NSLocale.Key.currencyCode, value : currencyCode)
let currencySymbol = locale.displayName(forKey:NSLocale.Key.currencySymbol, value : currencyCode)
if let _ = currencySymbol, let currencyName = currencyName {
let currencyModel = CurrencyModel()
currencyModel.currencyName = currencyName
currencyModel.currencyCode = currencyCode
currencies.append(currencyModel)
}
}
然后在 talbeView 中使用该数据
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell")! as! CurrencyTableViewCell
cell.name.text = currencies[indexPath.row].currencyName
cell.symbol.text = currencies[indexPath.row].currencyCode
return cell
}
这是我的货币模型
class CurrencyModel {
var currencyName = ""
var currencyCode = ""
}
如果它们都具有这种形式:即您想要的位(您不想要的位),您可以搜索正则表达式。搜索列表以找到最短的并保留它们。然后,您必须对使用美元或其他货币等的其他国家/地区采取一些措施。
你应该使用
Locale.commonISOCurrencyCodes
而不是
Locale.isoCurrencyCodes
我有一个 ios 应用程序,我试图让用户 select 他们想使用哪种货币。现在我有完整的货币列表,但似乎有一些重复项,例如:
有没有办法过滤掉其他的?美元不是唯一具有倍数的美元,有些美元还列出了日期范围。
我确定有一些内置方法可以执行此操作,但到目前为止我的搜索没有为我指明正确的方向。
这是我正在做的事情:
let locale = NSLocale.current as NSLocale
let currencyCodesArray = NSLocale.isoCurrencyCodes
var currencies = [CurrencyModel]()
for currencyCode in currencyCodesArray {
let currencyName = locale.displayName(forKey:
NSLocale.Key.currencyCode, value : currencyCode)
let currencySymbol = locale.displayName(forKey:NSLocale.Key.currencySymbol, value : currencyCode)
if let _ = currencySymbol, let currencyName = currencyName {
let currencyModel = CurrencyModel()
currencyModel.currencyName = currencyName
currencyModel.currencyCode = currencyCode
currencies.append(currencyModel)
}
}
然后在 talbeView 中使用该数据
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell")! as! CurrencyTableViewCell
cell.name.text = currencies[indexPath.row].currencyName
cell.symbol.text = currencies[indexPath.row].currencyCode
return cell
}
这是我的货币模型
class CurrencyModel {
var currencyName = ""
var currencyCode = ""
}
如果它们都具有这种形式:即您想要的位(您不想要的位),您可以搜索正则表达式。搜索列表以找到最短的并保留它们。然后,您必须对使用美元或其他货币等的其他国家/地区采取一些措施。
你应该使用
Locale.commonISOCurrencyCodes
而不是
Locale.isoCurrencyCodes