gpt4 book ai didi

iphone - 应用内购买支付部分的 EXC_BAD_ACCESS

转载 作者:太空狗 更新时间:2023-10-30 03:23:13 24 4
gpt4 key购买 nike

我有一个 UITableView 设置了不同的应用内购买。每个选项都会将您带到一个 View Controller ,该 View Controller 还具有委托(delegate)以及在应用程序内购买时不应该做的事情。更改 plist 文件以确定选择了 TableView 中的哪个选项。这一切都很好。我放入 NSLogs 以确保变量已设置。然而,当我点击购买时,它只有一半的时间有效,另一半我得到

EXC_BAD_ACCESS

在线:

[[SKPaymentQueue defaultQueue] addPayment:payment];

就应用程序内购买而言,一切都设置正确,因为在我切换到这种方式之前它曾经有效。我认为这可能与调用 productsRequest 有关,因为我在 didReceiveResponse 委托(delegate)中设置了 NSLog 并且它在第一次后更快地收到响应。我卡住了。那些不起作用的总是随机的,没有韵律或原因。任何帮助表示赞赏。

最佳答案

我遇到了这个问题,发现问题是我释放了我添加到默认 SKPaymentQueue 的事务观察器。显然 SKPaymentQueue 不保留其观察者,可能是为了防止保留周期。

所以,具体来说,我更改了这段代码:

- (void) setupAppStoreObserver {
AppStoreObserver *appStoreObserver = [[AppStoreObserver alloc] init];
[[SKPaymentQueue defaultQueue] addTransactionObserver:appStoreObserver];
[appStoreObserver release]; // This is the problem
}

对此:

- (void) setupAppStoreObserver {
AppStoreObserver *appStoreObserver = [[AppStoreObserver alloc] init];
[[SKPaymentQueue defaultQueue] addTransactionObserver:appStoreObserver];

// Note, we don't release the appStoreObserver because it is not
// actually retained by SKPaymentQueue (probably to prevent retain cycles)
}

关于iphone - 应用内购买支付部分的 EXC_BAD_ACCESS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7212004/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com