我想知道如何在Swift 3中创建一个缓存的NSNumberFormatter(NumberFormatter)?
这是我通过搜索Gists找到的;
extension NumberFormatter {
private static var cache:[String:NumberFormatter] = [:]
static func numberFormatterForKey(key:String, initialize:((NumberFormatter)->())? = nil) -> NumberFormatter {
if let formatter = NumberFormatter.cache[key] {
return formatter
} else {
let formatter = NumberFormatter()
NumberFormatter.cache[key] = formatter
initialize?(formatter)
return formatter
}
}
}
但我不确定如何使用它;或者如果有更好的解决方案。
那么,如何在Swift 3中创建一个缓存的NSNumberFormatter?
答案 0 :(得分:0)
我已经解决了这个问题;
我像这样创建我的缓存nsnumberformatter;
struct ObjectCache {
static let currencyRateFormatter: NumberFormatter = {
var numberFormatter = NumberFormatter()
numberFormatter.locale = Locale(identifier: "en_US")
numberFormatter.numberStyle = .currency
numberFormatter.minimumFractionDigits = 0
numberFormatter.maximumFractionDigits = 0
numberFormatter.alwaysShowsDecimalSeparator = false
return numberFormatter
}()
}
然后像这样使用它;
self.myCashLbl.text = ObjectCache.currencyRateFormatter.string(from: NSNumber(integerLiteral: player.cash))
感谢。