【发布时间】:2014-06-02 08:28:31
【问题描述】:
为了分析和收集数据,我想获得 SKProduct 的美元价格。
我用来向用户显示价格的基本代码是:
_priceFormatter = [[NSNumberFormatter alloc] init];
[_priceFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[_priceFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[_priceFormatter setLocale:inAppProduct.priceLocale];
inAppItemString = [_priceFormatter stringFromNumber:inAppProduct.price];
这段代码给出了用户应该用他的本地硬币支付的真实价格
我尝试将本地设置为 en_US,但我得到的价格与以前相同,只是 $ :) 这是我为尝试这个而改变的:
NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[_priceFormatter setLocale:usLocale];
知道如何获得美元价格吗?
【问题讨论】:
-
您想要用户支付的价格(换算成美元)还是美国用户愿意支付的价格?第一个很困难,您需要从某个地方获得正确的转换因子。其次,您需要说服商店给您美国的价格。
-
@gnasher729 ,这两个选项应该给我相同的...那么我怎样才能说服商店这样做呢? :)
-
您尝试做的事情没有意义。用户将以他们国家的应用商店使用的任何形式的货币付款。故事结局。如果您想转换为美元并向用户显示该金额,您可以 这样做(正如第一位评论者所说——您必须获取当前汇率并自己进行转换)。但这将是一种毫无意义且具有误导性的做法,因为用户将以他们的货币形式付款,而 Apple 将在他们向您付款时处理货币转换。
-
@NicholasHart 正如我在问题中所说,我希望它用于分析和收集数据。感谢您的回答
-
@locoboy 你是对的。我没有真正的解决方案。但无论如何,我只需要它用于统计数据,而不是实际操作。
标签: ios localization in-app-purchase skproduct