2009-06-30 10 views
2

通貨の値をNSDecimalNumbers(このフォーラムの複数の他のスレッドで推奨されているように)に保存しています。NSNumberFormatterを使用して正しく表示し、入力。すべていいよ!しかし、iPhoneの一般設定で地域フォーマットを米国外のどこかに変更すると、ドイツと言い、次に自分のアプリを見ると、すべての番号が$から€に変わりました。元々 "$ 100.00"と入力された金額は "100,00€"と表示されます。簡単に変更できるデバイスでのCocoaの永続通貨フォーマット

これは悪いです。悲しいことに、悲しいことに、ドルはもはやユーロと同じ価値をもはや持っていないので、クローズしなくても:-(しかし、私は逃げる...最終的に、私はコンバージョンを探していません。

ユーザーが世界中を旅しているときに、これらの数値が正しくフォーマットされるようにする方法は何ですか?アプリの有用性を単一の通貨に限定する必要はありません。 。

答えて

3

値を入力すると、あなたは現在のシステムISO 4217 CURRENCYCODEを取得し、(それは単なる文字列です)数でそれを保存することができます:

NSString* currencyCode = [[[[NSNumberFormatter alloc] init] autorelease] currencyCode]; 

のデータを表示する場合、あなたのNSNumberFormatterにこのCURRENCYCODEを設定します。

// NSNumberFormatter* formatter = [[[[NSNumberFormatter alloc] init] autorelease] setCurrencyCode:currencyCode]; 

編集コードのタイプミスのために:

NSNumberFormatter* formatter = [[[NSNumberFormatter alloc] init] autorelease]; 
[formatter setCurrencyCode:currencyCode]; 
+1

私はあなたが宣言とステートメントの中に後者の宣言を分離することを意味すると考えています。 –

+1

それをテストと考えてください。合格 :) –

関連する問題