2014-07-10 9 views
8

Qualcuno potrebbe confermare la mia opinione che il seguente rapporto di arresto anomalo verrebbe generato a causa del fatto che lo SKProductsRequestDelegate viene ancora assegnato, ma il codice stesso non lo è? cioè il VC è stato chiuso?Report di errore iOS SKProductsRequest

StoreKit: __34-[SKProductsRequest _handleReply:]_block_invoke + 442 

Exception Type: EXC_BAD_ACCESS (SIGSEGV) 
Exception Subtype: KERN_INVALID_ADDRESS at 0x41682340 
Triggered by Thread: 0 

Thread 0 Crashed: 
0 libobjc.A.dylib     0x38d19626 objc_msgSend + 6 
1 StoreKit      0x30c4784a __34-[SKProductsRequest _handleReply:]_block_invoke + 442 
2 libdispatch.dylib    0x391f7830 _dispatch_call_block_and_release + 8 
3 libdispatch.dylib    0x391f781c _dispatch_client_callout + 20 
4 libdispatch.dylib    0x391fe49a _dispatch_main_queue_callback_4CF$VARIANT$mp + 274 
5 CoreFoundation     0x2e45f89c __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 4 
6 CoreFoundation     0x2e45e170 __CFRunLoopRun + 1296 
7 CoreFoundation     0x2e3c8eba CFRunLoopRunSpecific + 518 
8 CoreFoundation     0x2e3c8c9e CFRunLoopRunInMode + 102 
9 GraphicsServices    0x3332265e GSEventRunModal + 134 
10 UIKit       0x30d15148 UIApplicationMain + 1132 
11 BaseApp       0x00035aea 0x2c000 + 39658 
12 libdyld.dylib     0x3921cab4 start + 0 

Se il mio pensiero è corretto, posso risolvere questo chiamando: -

request.delegate = nil; 
[request cancel]; 
request = nil; 

Se io sono inesatte, qualcuno potrebbe fare un po 'più luce su questo per me?

Grazie.

risposta

17

Per ref, la mia aggiunta del seguente codice ha effettivamente risolto il problema.

request.delegate = nil; 
[request cancel]; 
request = nil; 
+0

Dove l'hai messo? Non capisco – lespommes

+2

Aggiungilo mentre la classe viene rimossa, quindi viewWillDisappear, dealloc o qualsiasi sottofondo. – MrNeilM

+0

Ah, ho capito. Alla fine ho capito che l'oggetto era solo deallocing mentre la chiamata era in corso, quindi l'ho spostata. Grazie! – lespommes

Problemi correlati