Dans la plupart des cas, le symbole de la devise ne sera pas assez. Par exemple, en Allemagne, nous écrivons nos prix de ce genre: 1,99€, mais les gens dans les etats-unis utilisent à 1,99$. Il y a trois différences dans la chaîne. Le symbole de la monnaie, la position et le séparateur.
Si vous voulez le faire correctement, vous devez utiliser un NSNumberFormatter. Il prend soin de toutes les différences entre les formats en devise. Et il le fait beaucoup mieux que vous. Parce qu'il le fait pour toutes les monnaies, et pas seulement pour les 4 principales devises que vous souhaitez soutenir.
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[formatter setLocale:[NSLocale currentLocale]];
NSString *localizedMoneyString = [formatter stringFromNumber:myCurrencyNSNumberObject];
Si vous voulez l'utiliser pour achat in-app vous ne pouvez pas compter sur les utilisateurs locaux, car il est possible d'utiliser un compte basé sur un appareil avec un DE (allemand) paramètres régionaux. Et le prix de votre article (prix réel est de 0,79€ en Allemagne) montrerait que 0,99€ (parce qu'il en coûte $0.99 US). Ce serait une erreur. Vous obtenez un localisée prix déjà à partir de l'app store, il n'est pas nécessaire de faire des calculs sur votre propre.
Et vous obtenez un prix et un priceLocale pour chacun de vos SKProducts.
Vous obtenez la bonne formaté monnaie chaîne comme ceci:
SKProduct *product = [self.products objectAtIndex:indexPath.row];
NSNumberFormatter *formatter = [[[NSNumberFormatter alloc] init] autorelease];
[formatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[formatter setLocale:product.priceLocale];
currencyString = [formatter stringFromNumber:product.price];
EDIT: depuis que vous avez spécifiquement demandé le code de la devise.
Vous pouvez vous le procurer NSString *currencyCode = [formatter currencyCode];
Cela vous donnera le code de la devise selon la norme ISO 4217. AUD, USD, EUR et ainsi de suite.