以编程方式显示应用内购买价格

时间:2014-01-17 20:09:43

标签: ios objective-c in-app-purchase

我将以下代码添加到我的In App Purchase ViewController中,但我想显示价格以及我已添加的文本

我调用价格的代码是:

 _priceFormatter = [[NSNumberFormatter alloc] init];
    [_priceFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
    [_priceFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
    [_priceFormatter setLocale:product.priceLocale];

我想在按钮上的“升级为”文本后调用该字符串中的价格

[buyButton setTitle:@"Upgrade for" forState:UIControlStateNormal];

我该怎么做?

2 个答案:

答案 0 :(得分:1)

也许我在这里遗漏了一些东西(没有经过测试),但是有什么理由不适用吗?

NSString *buttonTitleString= [NSString stringWithFormat:@"Upgrade for %@", priceString];
[buyButton setTitle:buttonTitleString forState:UIControlStateNormal];

或者,在一行中完成

[buyButton setTitle:[NSString stringWithFormat:@"Upgrade for %@", priceString] forState:UIControlStateNormal];

其中priceString是价格的字符串,可能使用您在问题中描述的格式化程序。

答案 1 :(得分:0)

NSNumberFormatter *formatter = [NSNumberFormatter new];
[formatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[formatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[formatter setLocale:product.priceLocale];

NSString* titleWithPriceAndCurrencySign = [formatter stringFromNumber:product.price];

[buyButton setTitle:[NSString stringWithFormat:@"Upgrade for %@", titleWithPriceAndCurrencySign] forState:UIControlStateNormal];

有时您可能希望为某些区域设置自定义标准价格表示。例如,俄语区域设置价格带有冗余零 - 33,00 RUB。我想要一个简短的符号 - 33 r.。所以我添加以下代码:

if ([product.priceLocale.localeIdentifier hasSuffix:@"currency=RUB"])
{
    [formatter setMaximumFractionDigits:0];
    [formatter setCurrencySymbol:@"r."];
}