Подтвердить что ты не робот

SKPaymentQueue.defaultQueue(). AddPayment (платеж) Сбой при перемещении между VC Swift

IAP работает, но когда я перемещаюсь между представлениями и возвращаюсь к IAP VC, приложение выходит из строя в SKPaymentQueue.defaultQueue().addPayment(payment) ERROR: EXC_BAD_ACCESS

4b9b3361

Ответ 1

Я нашел решение, нужно убрать SKPaymentQueue в представлении viewWillDisappear

Обновление Swift 4.2

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

Swift 2.3

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

Ответ 2

Я использую свой класс вместо viewController.

import StoreKit

open class IAPHelper: NSObject  {

     //Properties

     public init() {
         //init properties
         super.init()
         SKPaymentQueue.default().add(self)
     }

     deinit {
         SKPaymentQueue.default().remove(self)
     }
}