Tengo problemas para implementar InAppPurchase. Mi implementación de compra está en el controlador de vista modal (AppUpgradeViewController), que presento desde otra vista modal. Lo hago así:iPhone - SKProductsRequest y "mensaje enviado a instancia desasignada"
AppUpgradeViewController * appUpgradeViewController = [[AppUpgradeViewController alloc] init];
appUpgradeViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
appUpgradeViewController.delegate = self;
[self presentModalViewController:appUpgradeViewController animated:YES];
[appUpgradeViewController release];
Entonces, en mi opinión actualización hago lo siguiente:
[[SKPaymentQueue defaultQueue] addTransactionObserver:self];
NSSet *productIdentifiers = [NSSet setWithObject:kInAppPurchaseProUpgradeProductId];
self.productsRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:productIdentifiers];
self.productsRequest.delegate = self;
[productsRequest start];
Luego he implementado
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
donde hago:
[self.productsRequest release];
y luego tengo otros métodos requeridos.
El problema es cuando muestro modal, y despedir rápidamente a continuación, después de unos segundos me dieron el siguiente en la consola (Encendí NSZombieEnabled):
*** -[AppUpgradeViewController respondsToSelector:]: message sent to deallocated instance 0x2e91f0
supongo que es algo con esa solicitud de productos, pero no sé cómo depurarlo o solucionarlo. Parece que la respuesta a la solicitud llega a este controlador justo después de que se descarta (y se desasigna), pero no sé cómo evitar que reciba mensajes después de cerrar/tratarloc. ¡Gracias por cualquier ayuda!
Estoy teniendo el mismo problema, pero ninguna de las soluciones a continuación me funciona. Tengo ARC habilitado. ¿Alguna sugerencia? – mvb