gpt4 book ai didi

swift - NSLocale Swift 3

转载 作者:IT王子 更新时间:2023-10-29 05:22:55 25 4
gpt4 key购买 nike

如何在 Swift 3 中获取货币符号?

public class Currency: NSObject {
public let name: String
public let code: String
public var symbol: String {
return NSLocale.currentLocale().displayNameForKey(NSLocaleCurrencySymbol, value: code) ?? ""
}

// MARK: NSObject

public init(name: String, code: String) {
self.name = name
self.code = code
super.init()
}
}

我知道 NSLocale 已重命名为 Locale,但 displayNameForKey 已被删除,我似乎只能使用 localizedString(forCurrencyCode: self.code) 在当前语言环境中生成货币名称而无法获取其符号.我正在寻找一种在当前语言环境中获取外币符号的方法。

还是我忽略了什么?

最佳答案

NSLocale 没有重命名,它仍然存在。 Locale 是一个Swift 3 中引入的新类型作为值类型包装器(比较 SE-0069 Mutability and Foundation Value Types )。

显然 Locale 没有 displayName(forKey:value:) 方法,但你总是可以将它转换成它的基础对应物NSLocale:

public var symbol: String {
return (Locale.current as NSLocale).displayName(forKey: .currencySymbol, value: code) ?? ""
}

更多例子:

// Dollar symbol in the german locale:
let s1 = (Locale(identifier:"de") as NSLocale).displayName(forKey: .currencySymbol, value: "USD")!
print(s1) // $

// Dollar symbol in the italian locale:
let s2 = (Locale(identifier:"it") as NSLocale).displayName(forKey: .currencySymbol, value: "USD")!
print(s2) // US$

关于swift - NSLocale Swift 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39519144/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com