在App Purchase Crash - [[SKPaymentQueue defaultQueue] addPayment:payment];

时间:2012-06-15 15:53:44

标签: ios ios5 in-app-purchase

我收到崩溃时出现以下错误消息:

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

这就发生在这一行:

 [[SKPaymentQueue defaultQueue] addPayment:payment];

当我加载In App Purchase View时,会出现问题,然后从superview中删除该视图,然后重新打开它并点击进行购买。

有没有人对我如何纠正这个问题有任何想法。不知道上述内容是否足以纠正问题。

不知道这是否与它有关,但每次加载时都会调用它。

[[SKPaymentQueue defaultQueue] addTransactionObserver:self];

由于

3 个答案:

答案 0 :(得分:8)

我认为问题是固定的。在按下后退按钮关闭模态之前,我打电话。

 [[SKPaymentQueue defaultQueue] removeTransactionObserver:self];

答案 1 :(得分: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)

}

Swift 3.0

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

}

答案 2 :(得分:0)

崩溃的原因之一可能是在 SKPayment 中插入了空productIdentifier