【发布时间】:2011-06-14 12:14:59
【问题描述】:
我在实施 InAppPurchase 时遇到了麻烦。我的购买实现是在模态视图控制器(AppUpgradeViewController)中,我从另一个模态视图呈现。我是这样做的:
AppUpgradeViewController * appUpgradeViewController = [[AppUpgradeViewController alloc] init];
appUpgradeViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
appUpgradeViewController.delegate = self;
[self presentModalViewController:appUpgradeViewController animated:YES];
[appUpgradeViewController release];
然后,在我的升级视图中,我执行以下操作:
[[SKPaymentQueue defaultQueue] addTransactionObserver:self];
NSSet *productIdentifiers = [NSSet setWithObject:kInAppPurchaseProUpgradeProductId];
self.productsRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:productIdentifiers];
self.productsRequest.delegate = self;
[productsRequest start];
那我已经实现了
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
我在哪里:
[self.productsRequest release];
然后我还有其他需要的方法。
问题是当我显示模态并快速关闭它时,几秒钟后我在控制台上得到以下信息(我打开了 NSZombieEnabled):
*** -[AppUpgradeViewController respondsToSelector:]: message sent to deallocated instance 0x2e91f0
我想这与产品请求有关,但我不知道如何调试或修复它。似乎请求的答案是在它被解除(和解除分配)之后才出现在这个控制器上的,但我不知道如何防止它在解除/解除分配后接收消息。 感谢您的帮助!
【问题讨论】:
-
我遇到了同样的问题,但以下解决方案都不适合我。我启用了 ARC。有什么建议吗?
标签: iphone