通过应用内购买,我希望本地货币符号显然适合用户本地货币。使用NSLocaleCurrencySymbol作为检测用户所在位置的主要来源是否安全。这是我的代码的一部分:
NSLocale *theLocale = [NSLocale currentLocale];
NSString *symbol = [theLocale objectForKey:NSLocaleCurrencySymbol];
NSString *cost = [NSString stringWithFormat:@"%@",product.price];
默认情况下,当用户购买iOS设备时,在每台设备的国际设置中自动完成正确的区域格式?
答案 0 :(得分:9)
您想使用NSNumberFormatter
:
<强>目标C 强>
NSNumberFormatter *formatter = [NSNumberFormatter new];
[formatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[formatter setLocale:product.priceLocale];
NSString *cost = [formatter stringFromNumber:product.price];
<强>夫特强>
let formatter = NSNumberFormatter()
formatter.numberStyle = .CurrencyStyle
formatter.locale = product.priceLocale
let cost = formatter.stringFromNumber(product.price)
然后,这将使用正确的十进制,分隔符和货币符号格式化货币。
答案 1 :(得分:2)
您不需要这样做,SKProduct
附带本地用户商店,您可以使用 -
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[numberFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[numberFormatter setLocale:product.priceLocale];
NSString *formattedString = [numberFormatter stringFromNumber:product.price];
看这里 -
答案 2 :(得分:2)
在swift中
var currency_format = NSNumberFormatter()
currency_format.numberStyle = NSNumberFormatterStyle.CurrencyStyle
currency_format.locale = validProduct.priceLocale
mylabel.text = currency_format.stringFromNumber(validProduct.price)
答案 3 :(得分:2)
已更新为Swift 3.0并作为SKProduct的扩展:
import StoreKit
extension SKProduct {
func getLocalizedPrice()->String{
let formatter = NumberFormatter()
formatter.numberStyle = .currency
formatter.locale = self.priceLocale
return formatter.string(from: self.price)
}
}