我在应用程序购买代码中有以下内容。
- (IBAction)purchaseProduct:(id)sender
{
SKProduct *thisProduct = [productDetailsList objectAtIndex:[sender tag]];
if ([thisProduct.productIdentifier isEqualToString:@"demo"]) {
SKPayment *payment = [SKPayment paymentWithProductIdentifier:@"demo"];
[[SKPaymentQueue defaultQueue] addPayment:payment];
}
}
购买屏幕是由导航控制器控制的单独 uiview。我第一次加载屏幕并进行购买一切都很好。但是,如果我加载屏幕,离开然后返回并进行购买,我会收到以下错误:
*** -[FilterPurchase respondsToSelector:]: message sent to deallocated instance 0x1fd92ca0
在进行断点检查后,错误似乎发生在这一行周围:
[[SKPaymentQueue defaultQueue] addPayment:payment];
任何人都可以在这里看到这个问题吗?我正在使用 ARC,所以我有点不确定如何解决这个问题。
谢谢
更新如果我还单击“恢复”按钮,也会发生同样的事情
- (IBAction)restorePurchases:(id)sender
{
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
}