获取价格等级和位置的正确货币的ios应用商店价格

时间:2012-04-19 15:53:23

标签: ios storekit

假设我有一个庞大的产品目录,可以在各种价位的应用内购买。 这些产品将在多个地区销售,因此需要以正确的货币显示价格。

有没有办法可以(从itunes)请求给定国家(用户itunes帐户所在国家/地区)的特定价格等级的货币价值?

目前,我能看到的唯一方法是向Apple发送产品信息请求,以便在给定价格层首次出现产品,然后存储此结果。

作为一个侧面问题:我知道我可以使用我的服务器返回货币/等级组合的价格,但我担心苹果调整应用内价格的可能性。有可能发生这种情况吗?

2 个答案:

答案 0 :(得分:2)

extension SKProduct {
    var localizedPriceString: String? {
        let formatter = NumberFormatter()
        formatter.formatterBehavior = .behavior10_4
        formatter.numberStyle = .currency
        formatter.locale = priceLocale
        return formatter.string(from: price)
    }
}

答案 1 :(得分:1)

检查SKProduct处理价格属性的文档,那里有示例代码可供您使用。


五年后没有陈旧的链接代码:(轻松改编为Swift 3.0和样式):

Swift 3.0

    let numberFormatter = NumberFormatter()

    numberFormatter.formatterBehavior = .behavior10_4
    numberFormatter.numberStyle = .currency
    numberFormatter.locale = someProduct.priceLocale

    let formattedString = numberFormatter.string(from: someProduct.price)

目标C

    NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];

    [numberFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
    [numberFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
    [numberFormatter setLocale:product.priceLocale];

    NSString *formattedString = [numberFormatter stringFromNumber:product.price];

最后一件事:NumberFormatter对象价格昂贵(就时间和资源而言),所以如果您希望经常使用它,请考虑在某处缓存。