Reputation: 877
I want the buttons that you have to tap to buy something to show the price of that.
For example: "5 coins €0,99"
But if I create a UIlabel with exactly that text, Americans will also see the price in € instead of usd.
Now how can I set the price where it adjust to the currency the user lives in? I saw it on some games so I am convinced that this is possible.
thank you!
Upvotes: 9
Views: 8324
Reputation: 6612
You might want to to localize (internationalize) your interface and texts.
In order to do that you'll have look how to do it for :
NSLocalizedString
see for example Apple or NSHipster, ...Upvotes: 2
Reputation: 2077
If purchases are done via Apple App Store (using StoreKit framework) you need to get price + currency from SKProduct object (prices will vary).
https://developer.apple.com/library/ios/documentation/StoreKit/Reference/SKProduct_Reference/
Update
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)!
}
}
Information taken from here and here.
import StoreKit
extension SKProduct {
var localizedPrice: String {
let formatter = NumberFormatter()
formatter.numberStyle = .currency
formatter.locale = priceLocale
return formatter.string(from: price)!
}
}
Upvotes: 20