微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

iphone – 在应用程序购买测试期间的EXC_BAD_ACCESS

为我的应用程序购买运行测试(第一次在应用程序购买)。我在这代码的第三行得到EXC_BAD_ACCESS:

SKPayment *payment = [SKPayment paymentWithProduct:electronicProd];
    [[SKPaymentQueue defaultQueue] addTransactionObserver:self];
    [[SKPaymentQueue defaultQueue] addPayment:payment];

这是一个按钮的IBAction。电子邮箱在标题中声明为SKProduct。在productsRequest didReceiveResponse中提供了一些NSLogs,当请求产品(在viewDidLoad中)时,它们显示正确地获取产品并将其存储在electronicPack中。在didReceiveResponse页面中定义为[[request.products] objectAtIndex:0]的电子邮件。那么是啊这些在哪里,不知道该怎么办任何帮助是赞赏。

更新:FIXED意外地留下了在添加一个额外的事务观察者哈哈的代码

解决方法

您需要保留您正在创建的对象

- (void)viewDidLoad {
   //... stuff
   SKProduct* electronicProduct = //...
   [electronicProduct retain];
   //... otherstuff
}

viewDidLoad被系统包装在自动释放池中,paymentWithProduct:返回一个自动释放对象。当viewDidLoad完成后,所有的autorelease对象都被释放,这就是为什么当你尝试访问它时,你的内存访问不佳。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐