- (void)restorePurchasesButtonTapped {
[soundManager playTapSound];
persistor = [RMStore defaultStore].transactionPersistor;
[[RMStore defaultStore] restoreTransactionsOnSuccess:^{
if ([persistor isPurchasedProductOfIdentifier:@"RemoveAds"]) {
[SVProgressHUD showSuccessWithStatus:@"Purchases restored, ads removed!"];
[FXKeychain defaultKeychain][@"AdsRemoved"] = [NSNumber numberWithBool:YES];
} else {
[SVProgressHUD showErrorWithStatus:@"Looks like you don't have any previous purchases!"];
}
} failure:^(NSError *error) {
[SVProgressHUD showErrorWithStatus:@"Problem restoring purchases"];
}];
}
编辑:很抱歉没有明确问题。我收到的错误如下:“不兼容的块指针类型向'void(^)NSArray * __ strong'类型的参数发送'void'(^)(void)
我没有返回一个数组,但是bug中提到了NSArray。如果我可以提供更多信息,请告诉我,有点新的编码和尝试修复别人的代码项目中的错误,所以我对代码没有很好的理解
答案 0 :(得分:0)
听起来restoreTransactionsOnSuccess
期待一个不同的块参数。
尝试:
[[RMStore defaultStore] restoreTransactionsOnSuccess:^(NSArray *transactions){
答案 1 :(得分:0)
类型void (^)(void)
是对块((^)
)的引用,它不带任何参数((void)
)并且不返回任何内容(void
)。该错误表明这是您提供的内容,它与void (^)(NSArray * __strong)
的参数类型不兼容 - 这是对带有数组并且不返回任何内容的块的引用。您调用的方法的定义是:
- (void)restoreTransactionsOnSuccess:(void (^)(NSArray *transactions))successBlock
failure:(void (^)(NSError *error))failureBlock;
您需要提供一个成功的块,它接受一个NSArray *
作为参数,例如:
^ (NSArray *transactions) { ... }
HTH