我收到崩溃时出现以下错误消息:
[FilterPurchase respondsToSelector:]: message sent to deallocated instance 0x1edacba0
这就发生在这一行:
[[SKPaymentQueue defaultQueue] addPayment:payment];
当我加载In App Purchase View时,会出现问题,然后从superview中删除该视图,然后重新打开它并点击进行购买。
有没有人对我如何纠正这个问题有任何想法。不知道上述内容是否足以纠正问题。
不知道这是否与它有关,但每次加载时都会调用它。
[[SKPaymentQueue defaultQueue] addTransactionObserver:self];
由于
答案 0 :(得分:8)
我认为问题是固定的。在按下后退按钮关闭模态之前,我打电话。
[[SKPaymentQueue defaultQueue] removeTransactionObserver:self];
答案 1 :(得分:0)
您需要清理viewWillDisappear
中的SKPaymentQueueSwift 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
。