В большинстве случаев символа валюты будет недостаточно. Например, в Германии мы пишем наши цены следующим образом: 1,99 €, но люди в США используют 1,99 $. Есть три различия в строке. Символ валюты, ее положение и разделитель.
Если вы хотите сделать это правильно, вы должны использовать NSNumberFormatter. Он заботится обо всех различиях между форматами валюты. И это делает это намного лучше, чем вы. Потому что он делает это для всех валют, а не только для 4 основных валют, которые вы хотите поддерживать.
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[formatter setLocale:[NSLocale currentLocale]];
NSString *localizedMoneyString = [formatter stringFromNumber:myCurrencyNSNumberObject];
Если вы хотите использовать это для покупки приложения, вы не можете полагаться на текущий языковой стандарт пользователя, поскольку можно использовать учетную запись из США на устройстве с немецким языковым стандартом. А цена вашего товара (фактическая цена 0,79 € в Германии) будет отображаться как 0,99 € (потому что в США это стоит 0,99 $). Это было бы неправильно. Вы уже получаете локализованную цену в магазине приложений, нет необходимости делать расчеты самостоятельно.
И вы получаете цену и цену на каждый из ваших SKProducts.
Вы получите правильную отформатированную строку валюты, например:
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];
РЕДАКТИРОВАТЬ: так как вы специально попросили код валюты.
Вы можете получить его с помощью NSString *currencyCode = [formatter currencyCode];
Это даст вам код валюты в соответствии с ISO 4217. AUD, USD, EUR и так далее.