2014-11-14 360 views
-1

我有一個應用程序內的問題。我的應用程序中有2個應用程序。但是,當我第一次購買,比我想購買第二次我的應用程序崩潰,它顯示我錯誤Thread 1: EXC_BAD_ACCESS(code=1, address=0x10)。符合[[SKPaymentQueue defaultQueue] addPayment:payment];你能幫我嗎?訪問崩潰應用程序崩潰應用程序內ios

+0

顯示更多的代碼。 EXC_BAD_ACCESS是iOS上的常見崩潰,僅提供極少數調試線索。 – rdurand 2014-11-14 14:27:50

+0

如果我不得不猜測,我會說你已經失去了對過去在'付款'中持有的對象的引用。不過,你需要提供更多的上下文。 – 2014-11-14 14:39:07

+0

也啓用殭屍模式進行調試。它看起來像物體被釋放,但仍然 – rahulinaction 2014-11-14 16:39:43

回答

1

您提供的信息太少。仍然...

你在設置payment

SKPayment *payment = [SKPayment paymentWithProduct:product]; 

是否product存在,並且是類型SKProduct

此外,您無法創建SKProduct。 SKProducts作爲請求響應。檢查你的委託方法productsRequest:didReceiveResponse:

您應該通過設置斷點來調試整個過程。那麼你將能夠提供更多的信息,以防你自己沒有解決問題。

+0

對於很少的信息,我很抱歉上傳完整的應用內代碼,產品是SKProduct類型,並且存在。 http://pastebin.com/kTL8ZRqS – PatrikD 2014-11-14 17:03:42

+0

我在看你的代碼。這不會解決您的問題,但您應該將應用程序內購買觀察者設置爲一個更普通的類,這個類可以隨時訪問(例如,您的應用程序委託類);否則,如果由於某種原因在下載過程中應用程序崩潰,產品將無法發送。除此之外,您不必多次設置觀察者。除此之外,您是否注意到buyPackage總是購買相同的產品([validProducts objectAtIndex:0])?如果您是爲了測試目的而這樣做,validProducts是否與nil不同? – Leandro 2014-11-14 19:54:27

+0

問題是我不釋放內存'[[SKPaymentQueue defaultQueue] removeTransactionObserver:self];' – PatrikD 2014-11-16 08:12:03