[英]Problem with iTune in app purchase!
I am setting up an in-app-purchase system in my app. 我正在我的应用中设置应用内购买系统。 I have registered the in-app-purchase at iTune connect.
我在iTune connect上注册了应用内购买。 And here comes my code:
这是我的代码:
This is the code for requesting product info: 这是请求产品信息的代码:
- (void) requestProductData {
SKProductsRequest *request=
[[[SKProductsRequest alloc] initWithProductIdentifiers:
[NSSet setWithObject:@"com.myapp.id"]] autorelease];
request.delegate = self;
[request start];
}
This is the code for receiving the product info: (basically I did nothing but trying to print it out) 这是接收产品信息的代码:(基本上我只是尝试将其打印出来)
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response {
NSArray *myProduct = response.products;
SKProduct *product = [myProduct objectAtIndex:0];
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[numberFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[numberFormatter setLocale:product.priceLocale];
NSString *formattedString = [numberFormatter stringFromNumber:product.price];
[numberFormatter release];
NSLog(@"Product 0 : %@, %@, %@, %@, %@", product.productIdentifier, product.localizedDescription, product.localizedTitle, product.priceLocale.localeIdentifier, formattedString);
[request autorelease];
}
I have applied the delegate: 我申请了代表:
@interface StoreObserver : NSObject <SKProductsRequestDelegate>{
I used a button to trigger requestProductData
. 我用一个按钮来触发
requestProductData
。 By using breakpoints, I was sure it got called. 通过使用断点,我确信它被调用了。 However,
productsRequest
was never called. 但是,从未调用过
productsRequest
。 I made sure of the connectivity too. 我也确保了连接性。
Does anybody hava any clue? 有人有任何线索吗?
你跳过了我猜的部分方法
[[SKPaymentQueue defaultQueue] addTransactionObserver:self];
It turns out that the problem is here: 原来问题出在这里:
- (void) requestProductData {
SKProductsRequest *request=
[[[SKProductsRequest alloc] initWithProductIdentifiers:
[NSSet setWithObject:@"com.myapp.id"]] autorelease]; //<- here
request.delegate = self;
[request start];
}
You should never autorelease the SKProductsRequest. 您永远不应该自动发布SKProductsRequest。 I am so stupid to make this mistake.
我犯这个错误真是太蠢了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.