应用内购买崩溃 - [[SKPaymentQueue defaultQueue] addPayment:payment];

3

我遇到了以下错误信息导致的程序崩溃:

[FilterPurchase respondsToSelector:]: message sent to deallocated instance 0x1edacba0

该错误发生在以下代码行:

 [[SKPaymentQueue defaultQueue] addPayment:payment];

当我加载应用内购买视图时,然后将视图从超级视图中移除,再重新打开它并点击进行购买时,就会出现问题。有人有什么想法可以解决这个问题吗?不知道上面的信息是否足以解决问题。不知道这是否与每次加载有关。
[[SKPaymentQueue defaultQueue] addTransactionObserver:self];

谢谢

3个回答

8
我认为问题已经解决。在按下后退按钮关闭模态框之前,我调用以下代码。
 [[SKPaymentQueue defaultQueue] removeTransactionObserver:self];

0

崩溃的原因之一可能是插入了一个带有空的productIdentifierSKPayment


0

在 viewWillDisappear 中需要清理 SKPaymentQueue。

Swift 2.2

override func viewWillDisappear(animated: Bool) {
    super.viewWillDisappear(true)

    SKPaymentQueue.defaultQueue().removeTransactionObserver(self)

}

Swift 2.3

override func viewWillDisappear(animated: Bool) {
    SKPaymentQueue.defaultQueue().removeTransactionObserver(self)
}

迅捷 3.0

override func viewWillDisappear(_ animated: Bool) {
    SKPaymentQueue.default().remove(self)
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接