0

通貨書式を使用して通貨記号/スタイルをユーザーのローカル設定に設定しています。ここに私のコードです。私はそれがうまくいくと思います。それは私のviewDidLoadにあります。複数のメソッドで同じ通貨書式を使用する

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

問題は、この2つの異なる方法で同じ書式を使用したいと思います。書式設定を行うときはいつでも、各メソッドの書式設定を繰り返すのは無駄です。

フォーマットを一度設定し、クラスのすべてのメソッドの設定を覚えておく方法はありますか?

私はスイフト3を使用しています。私はあなたが与えることができる任意のヘルプに感謝!

+0

クラスまたはグローバル値、またはシングルトンを使用します。 – JAL

+0

http://stackoverflow.com/questions/24960621/struggling-with-nsnumberformatter-in-swift-for-currency/42957137#42957137 –

+0

FYI - デフォルトであるため、ロケールを現在のロケールに設定する必要はありません。 – rmaddy

答えて

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) 
} 
+0

なぜこれが私にとってうまくいかないのか分かりません。おそらく、私は「Whatever」クラスを間違った場所に置いているでしょうか?私はそれを私のクラス外に配置しましたViewController:UIViewControllerとinside。 – Jupiter869

+0

これはあなたのクラスが何であるかを意味します。新しいクラスを作成しないでください。 'currencyFormat'をView Controllerクラス(またはこのプロパティが必要なクラス)のプロパティにするだけです。 – rmaddy

+0

私の愚かな間違いを修正していただきありがとうございます!今それはすばらしく動作します!ありがとう!!! – Jupiter869

関連する問題