2010-03-05 4 views
2

Je mets des liens vers d'autres applications de la même entreprise dans une application iPhone, et nous voulons afficher le prix de ces applications. Est-il possible d'obtenir en quelque sorte la chaîne de prix localisée (montant et devise) qui convient à l'utilisateur? J'imagine que je devrais recourir à quelque chose comme le grattage d'écran, mais j'ai vu que les gens peuvent obtenir beaucoup d'informations sur App Store alors peut-être qu'il y a une façon relativement simple?Prix localisé de l'App Store

Répondre

6

Il existe une API de service Web iTunes que vous pouvez utiliser.

http://www.apple.com/itunesaffiliates/API/AffiliatesSearch2.1.pdf le documente.

Vous pouvez utiliser le champ de requête 'pays' pour spécifier le pays dans lequel vous souhaitez que les résultats soient renvoyés.

Vous pouvez obtenir le nom du pays de l'utilisateur à l'aide NSLocale

NSLocale *locale = [NSLocale currentLocale]; 
NSString *countryCode = [locale objectForKey: NSLocaleCountryCode]; 
NSString *countryName = [locale displayNameForKey: NSLocaleCountryCode 
         value: countryCode]]; 

si vous avez besoin d'une table de consultation pour formater ce de la même manière l'API iTunes Store fait.

+0

Wow, certainement beaucoup plus facile que je ne le pensais. Merci! – Felixyz

0

Si vous pouvez extraire le prix sous la forme d'un nombre simple, NSNumberFormatter vous fournira la localisation de la devise.

NSDecimalNumber *price = [NSDecimalNumber decimalNumberWithString:@"4.95"]; 

NSNumberFormatter *currencyFormatter = [[NSNumberFormatter alloc] init]; 
[currencyFormatter setNumberStyle:NSNumberFormatterCurrencyStyle]; 

Ceci ajoutera la devise à partir des paramètres régionaux de l'utilisateur. Si vous souhaitez modifier les paramètres régionaux, utilisez:

[currencyFormatter setLocale:anyLocale]; 
+0

Très intéressant, même si ce n'est pas suffisant dans cette situation. Ainsi, le système conserve des informations sur les taux de change récents, que NSNumberFormatter utilise? – Felixyz

+0

En fait, je pense que tout ce code fait est d'ajouter le symbole monétaire correspondant à la région de l'utilisateur. – NeilInglis

+1

@Felixyz Cela n'a rien à voir avec le calcul du taux de change, il formate simplement votre valeur numérique avec les paramètres de devise régionaux. – Enyra