2009-06-30 7 views
2

Je stocke mes valeurs de devise dans NSDecimalNumbers (comme recommandé dans plusieurs autres threads sur ce forum) et en utilisant un NSNumberFormatter pour les afficher correctement et gérer le texte contribution. Tout bon! Cependant, lorsque je change le format de la région sous Paramètres généraux de l'iPhone vers quelque part en dehors des États-Unis, disons l'Allemagne, puis regarde mon application. TOUS mes numéros ont changé de $ à €. Donc, un montant qui a été initialement saisi comme "100,00 $" est maintenant affiché comme "100,00 €".Format de devise persistante dans Cocoa sur un périphérique qui peut facilement changer Format de région

Ceci est mauvais. Parce que, malheureusement, le dollar n'est plus valorisé comme l'Euro - pas même proche :-(Mais, je m'égare ... En fin de compte, je ne cherche pas de conversion, je voudrais simplement afficher le montant dans le

Quelle est la méthode Cocoa pour s'assurer que ces chiffres se formatent correctement lorsque les utilisateurs parcourent le monde? Je détesterais devoir limiter l'utilité de mon application à une monnaie unique. .

Répondre

3

Lorsque vous entrez les valeurs que vous pouvez obtenir le système actuel ISO 4217 currencyCode et le stocker avec le numéro (il est juste une chaîne):

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

Lors de l'affichage des données, réglez ce currencyCode sur votre NSNumberFormatter:

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

Modifier pour faute de frappe dans le code:

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

Je crois que vous dire de séparer cette déclaration dans cette dernière une déclaration et une déclaration. –

+1

Oups. Considérez cela comme un test. Tu es passé :) –