加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 02:04:10 所属栏目:百科 来源:网络整理
导读:为我的应用程序购买运行测试(第一次在应用程序购买)。我在这段代码的第三行得到EXC_BAD_ACCESS: SKPayment *payment = [SKPayment paymentWithProduct:electronicProd]; [[SKPaymentQueue defaultQueue] addTransactionObserver:self]; [[SKPaymentQueue de
为我的应用程序购买运行测试(第一次在应用程序购买)。我在这段代码的第三行得到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对象都被释放,这就是为什么当你尝试访问它时,你的内存访问不佳。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读