gpt4 book ai didi

iphone - 如何获取 SKPayment 中产品的价格?

转载 作者:行者123 更新时间:2023-12-03 18:12:54 27 4
gpt4 key购买 nike

我正在为 iPhone 应用程序进行应用内购买。

我想在 UILabel 中以用户本地货币显示价格。为此,我需要变量中的价格和货币。

如何使用 SKPayment 获取包含货币的价格? (如果 SKPayment 对于此用途正确。)

我正在使用以下方法实例化产品:

SKPayment *payment = [SKPayment paymentWithProductIdentifier:@"Identifier"];

预先感谢大家的反馈!

最佳答案

仅使用 NSLocaleCurrencySymbol + Price.stringValue 存在一个问题:它不能处理不同语言环境的特殊性,例如。他们是否将货币符号放在前面。挪威、丹麦、瑞典和瑞士都将其货币放在例如。 17.00克朗此外,大多数(?)欧洲国家使用“,”而不是“。”对于小数,例如“2.99 欧元”而不是“2.99 欧元”。

更好的计划是使用 NSNumberFormatter。正如 Ed 所演示的,SKProduct 返回的“priceLocale”是关键。它使 NSNumberFormatter 能够正确地设置价格格式。

您还可以通过使用 Objective-C 类别向 SKProduct 添加新属性来使此过程变得更加容易。将以下两个文件添加到您的项目中:

<小时/>

SKProduct+priceAsString.h:

#import <Foundation/Foundation.h>
#import <StoreKit/StoreKit.h>

@interface SKProduct (priceAsString)
@property (nonatomic, readonly) NSString *priceAsString;
@end
<小时/>

SKProduct+priceAsString.m:

#import "SKProduct+priceAsString.h"

@implementation SKProduct (priceAsString)

- (NSString *) priceAsString
{
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[formatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[formatter setLocale:[self priceLocale]];

NSString *str = [formatter stringFromNumber:[self price]];
[formatter release];
return str;
}

@end
<小时/>

然后,在代码中#import "SKProduct+priceAsString.h",您应该就可以在代码中使用product.priceAsString

关于iphone - 如何获取 SKPayment 中产品的价格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2894321/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com