我正在尝试为 iOS 6 实施应用内购买,并且我正在关注Ray Wenderlich iOS 6 应用内教程 作为我的参考点。我对 Ray 的代码所做的一项重大更改是,我有一个按钮(应用程序购买中只有 1 个),用户可以点击该按钮进行购买,而不是为其制作自定义表格视图。我似乎无法让它工作,我一直在
-[__NSMallocBlock__ allObjects]: unrecognized selector sent to instance 0x1d5846d0
2012-10-03 00:03:25.715 myapp[752:907] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSMallocBlock__ allObjects]: unrecognized selector sent to instance 0x1d5846d0'
我相信问题发生在内部
- (void)requestProductsWithCompletionHandler:(RequestProductsCompletionHandler)completionHandler
ray 已经实现并且我已经实现了 2 个辅助类。我为这些更改的只是应用程序 ID 号。这些类称为 IAPHelper.h/m 和 RageIAPHelper.h/m
我已经发布了我认为发生错误的代码(时间不长)。如果有人可以帮助我,我已经为此工作了大约 4 个小时。先感谢您
内部购买视图控制器
-(void) viewDidLoad
{
[super viewDidLoad];
[self reload]; //Customized for my own needs compared to what Ray had
}
-(void)reload {
_products = nil;
[[RageIAPHelper sharedInstance] requestProductsWithCompletionHandler:^(BOOL success, NSArray *products) {
if (success) {
_products = products;
//[self.tableView reloadData];
}
//[self.refreshControl endRefreshing];
}];
}
称为 IAPHelper.m 的内部辅助方法
- (void)requestProductsWithCompletionHandler:(RequestProductsCompletionHandler)completionHandler {
// 1
_completionHandler = [completionHandler copy];
// 2
_productsRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:_productIdentifiers]; // This is where I think the crash is
_productsRequest.delegate = self;
[_productsRequest start];
}