【发布时间】:2012-03-19 04:48:20
【问题描述】:
我正在尝试设置 SKProductsRequest,但我不断收到错误 EXC_BAD_ACCESS。我知道这与ARC有关。 在我的 .h 文件中,我有 SKProductsRequestDelegate。
这些是我的 .m 文件中的主要功能:
- (void)requestProUpgradeProductData {
NSSet *productIdentifiers = [NSSet setWithObject:kInAppPurchaseProUpgradeProductId];
productsRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:productIdentifiers];
productsRequest.delegate = self;
[productsRequest start];
}
#pragma mark -
#pragma mark SKProductsRequestDelegate methods
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response {
NSArray *products = response.products;
//proUpgradeProduct = [products count] == 1 ? [products firstObject] : nil;
proUpgradeProduct = [products objectAtIndex:0];
if (proUpgradeProduct) {
NSLog(@"Product title: %@" , proUpgradeProduct.localizedTitle);
NSLog(@"Product description: %@" , proUpgradeProduct.localizedDescription);
NSLog(@"Product price: %@" , proUpgradeProduct.price);
NSLog(@"Product id: %@" , proUpgradeProduct.productIdentifier);
}
for (NSString *invalidProductId in response.invalidProductIdentifiers) {
NSLog(@"Invalid product id: %@" , invalidProductId);
}
// finally release the reqest we alloc/init’ed in requestProUpgradeProductData
productsRequest = nil;
[self purchaseProUpgrade];
[[NSNotificationCenter defaultCenter] postNotificationName:kInAppPurchaseManagerProductsFetchedNotification object:self userInfo:nil];
}
当我启用 NSZombieEnabled 时,我得到的是:"-[InAppPurchaseManager respondsToSelector:]: message sent to deallocated instance."
任何帮助将不胜感激。 谢谢!
【问题讨论】:
-
您在哪里获得了错误的访问权限? (如果您使用带有断点配置为抛出异常的调试器,您可以了解这一点)
-
我在调用 [productsRequest start] 后获得了错误的访问权限。
标签: iphone in-app-purchase automatic-ref-counting