3

我遇到了以下错误消息:

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

这发生在这一行:

 [[SKPaymentQueue defaultQueue] addPayment:payment];

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

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

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

[[SKPaymentQueue defaultQueue] addTransactionObserver:self];

谢谢

4

3 回答 3

8

我认为问题已经解决。就在按下关闭模式的后退按钮之前,我调用了。

 [[SKPaymentQueue defaultQueue] removeTransactionObserver:self];
于 2012-06-15T16:32:46.693 回答
0

您需要在 viewWillDisappear 中清理 SKPaymentQueue

斯威夫特 2.2

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

    SKPaymentQueue.defaultQueue().removeTransactionObserver(self)

}

斯威夫特 2.3

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

斯威夫特 3.0

override func viewWillDisappear(_ animated: Bool) {
    SKPaymentQueue.default().remove(self)
}
于 2017-04-13T08:22:54.277 回答
0

崩溃的原因之一可能是插入SKPayment与 empty productIdentifier

于 2020-02-19T18:04:57.480 回答