在多种方法中使用相同的货币格式

时间:2017-03-23 19:53:39

标签: swift swift3 number-formatting currency-formatting numberformatter

我使用某种货币格式将货币符号/样式设置为用户的本地设置。这是我的代码。我认为它运作正常。它位于我的viewDidLoad。

let currencyFormat = NumberFormatter()    
currencyFormat.locale = NSLocale.current
currencyFormat.usesGroupingSeparator = true
currencyFormat.numberStyle = NumberFormatter.Style.currency
...
labelTotalAmount.text = currencyFormat.string(for: totalAmount)

问题是,我想在另外两种不同的方法中使用相同的格式。每当我想进行格式化时,重复每种方法的格式似乎都是浪费。

有没有办法设置格式一次并让它记住类中每个方法的设置?

我使用的是Swift 3.我感谢您提供的任何帮助!

1 个答案:

答案 0 :(得分:1)

使它成为类的计算属性:

class Whatever {
    let currencyFormat: NumberFormatter = {
        let res = NumberFormatter()
        res.numberStyle = .currency
        res.usesGroupingSeparator = true
        return res
    }()
}

现在您可以在任何方法中使用该属性。

func someMethod() {
    let str = currencyFormat.string(for: 5.99)
}