【发布时间】:2015-05-08 11:34:15
【问题描述】:
我想要你必须点击才能购买东西的按钮来显示价格。
例如:“5 个硬币 €0,99”
但如果我创建一个带有该文本的 UIlabel,美国人也会看到欧元而不是美元的价格。
现在如何设置价格以适应用户居住的货币? 我在一些游戏中看到了它,所以我确信这是可能的。
谢谢!
【问题讨论】:
标签: ios xcode swift in-app-purchase app-store-connect
我想要你必须点击才能购买东西的按钮来显示价格。
例如:“5 个硬币 €0,99”
但如果我创建一个带有该文本的 UIlabel,美国人也会看到欧元而不是美元的价格。
现在如何设置价格以适应用户居住的货币? 我在一些游戏中看到了它,所以我确信这是可能的。
谢谢!
【问题讨论】:
标签: ios xcode swift in-app-purchase app-store-connect
如果通过 Apple App Store 完成购买(使用 StoreKit 框架),您需要从 SKProduct 对象获取价格 + 货币(价格会有所不同)。
https://developer.apple.com/library/ios/documentation/StoreKit/Reference/SKProduct_Reference/
更新
var productID:NSSet = NSSet(object: “product_id_on_itunes_connect”);
var productsRequest:SKProductsRequest = SKProductsRequest(productIdentifiers: productID);
productsRequest.delegate = self;
productsRequest.start();
func productsRequest (request: SKProductsRequest, didReceiveResponse response: SKProductsResponse) {
println("got the request from Apple")
var validProducts = response.products
if !validProducts.isEmpty {
var validProduct: SKProduct = response.products[0] as SKProduct
if (validProduct.productIdentifier == self.product_id) {
println(validProduct.localizedTitle)
println(validProduct.localizedDescription)
println(validProduct.price)
buyProduct(validProduct);
} else {
println(validProduct.productIdentifier)
}
} else {
println("nothing")
}
}
import StoreKit
extension SKProduct {
func localizedPrice() -> String {
let formatter = NSNumberFormatter()
formatter.numberStyle = .CurrencyStyle
formatter.locale = self.priceLocale
return formatter.stringFromNumber(self.price)!
}
}
import StoreKit
extension SKProduct {
var localizedPrice: String {
let formatter = NumberFormatter()
formatter.numberStyle = .currency
formatter.locale = priceLocale
return formatter.string(from: price)!
}
}
【讨论】:
您可能想要本地化(国际化)您的界面和文本。
为了做到这一点,您将了解如何做到这一点:
NSLocalizedString 例如:http://goo.gl/jwQ5Po (Apple), http://goo.gl/S1dCUW (NSHipster), ...【讨论】: