以多种货币动态显示应用内购买的价格
dynamically displaying prices of in app purchases in multiple currencies
我正在尝试以多种货币显示应用内购买的价格。
用户一次可以选择 1 项、2 项或 3 项。价格在运行时自行更新(例如,用户选择一项,而不是选择 2 项),以便用户可以看到它正在更新。如果价格仅以美元显示,这很容易实现。添加欧元或英镑时,事情开始变得混乱。如何以多种货币动态显示 IAP 价格?
像这样的东西应该适合你。以下代码打印本地化标题、货币代码和价格。
let product = ... //your SKProduct
if let currencyCode = product.priceLocale.objectForKey(NSLocaleCurrencyCode) as? String {
print(product.localizedTitle + " : " + currencyCode + " \(product.price)")
}
这是我使用的功能。当您在世界某个地方的不受支持的商店中时,似乎 SKProduct
的某些属性未填充。
internal func getPrice(#priceLocale: NSLocale!, price: NSDecimalNumber, count: Int) -> String? {
let formatter = NSNumberFormatter()
formatter.formatterBehavior = NSNumberFormatterBehavior.Behavior10_4
formatter.numberStyle = NSNumberFormatterStyle.CurrencyStyle
formatter.locale = priceLocale
return formatter.stringFromNumber(price * count)
}
这是我使用的功能(实际上是extension SKProduct
中的属性)
它 returns nil
,如果格式出现问题 count
或 price
。
我正在尝试以多种货币显示应用内购买的价格。 用户一次可以选择 1 项、2 项或 3 项。价格在运行时自行更新(例如,用户选择一项,而不是选择 2 项),以便用户可以看到它正在更新。如果价格仅以美元显示,这很容易实现。添加欧元或英镑时,事情开始变得混乱。如何以多种货币动态显示 IAP 价格?
像这样的东西应该适合你。以下代码打印本地化标题、货币代码和价格。
let product = ... //your SKProduct
if let currencyCode = product.priceLocale.objectForKey(NSLocaleCurrencyCode) as? String {
print(product.localizedTitle + " : " + currencyCode + " \(product.price)")
}
这是我使用的功能。当您在世界某个地方的不受支持的商店中时,似乎 SKProduct
的某些属性未填充。
internal func getPrice(#priceLocale: NSLocale!, price: NSDecimalNumber, count: Int) -> String? {
let formatter = NSNumberFormatter()
formatter.formatterBehavior = NSNumberFormatterBehavior.Behavior10_4
formatter.numberStyle = NSNumberFormatterStyle.CurrencyStyle
formatter.locale = priceLocale
return formatter.stringFromNumber(price * count)
}
这是我使用的功能(实际上是extension SKProduct
中的属性)
它 returns nil
,如果格式出现问题 count
或 price
。