You can create an instance of SKProductsRequest with a list of known identifiers at any time. I did this when the application starts. This is an asynchronous call using a delegate, so it's easy to get around without blocking it.
myProductsRequest = [SKProductsRequest initWithProductIdentifiers:someSetOfIds]; myProductsRequest.delegate = myDelegageSomewhere;
In SKProductsRequestDelegate :
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response { for(SKProduct *product in response.products) { [self doSomethingWithPrice:product.price] } }
The information is tied to an iTunes user account. That is how he gets the price for different stores in the country (different currencies).
source share