В соответствии с сообщением об ошибке отпущенного экземпляр осуществляется доступом. Это может быть пример SKProduct, я не могу точно сказать причину с вышеуказанными парами заявлений, но в целом вы должны следить за тем, чтобы вы выполняли следующие шаги, связанные с iAP:
1) Создать сохраненный экземпляр SKProduct и SKProductsRequest
@property (retain, nonatomic) SKProduct *productID;
@property (retain, nonatomic) SKProductsRequest *productsRequest;
2) В viewDidLoad добавить заявление
[[SKPaymentQueue defaultQueue] addTransactionObserver:self];
3) В методе dealloc добавить утверждение
[[SKPaymentQueue defaultQueue] removeTransactionObserver: self];
Примечание. Может случиться так, что при открытии представления вы добавляете себя в addTransactionObserver, в то время как закрытие представления не удаляет TransactionObserve, и снова, когда мы приходим к нему, он может иметь дескриптор предыдущего экземпляра, который не существовать.
code code corrected –
У вас есть в вашем коде addTransactionObserver для [SKPaymentQueue defaultQueue]? Если это так, посмотрите, добавили ли вы также метод удаления наблюдателя. Если вы забыли удалить или удалить, используйте removeTransactionObserver. – user3344236