Ios MKStoreKit购买错误
我仍在与MKStoreKit斗争 有一个名为“buyAction”的按钮,该按钮必须启动应用内购买流程。我尝试按照以下教程建议实现它,但仍然不起作用:Ios MKStoreKit购买错误,ios,mkstorekit,Ios,Mkstorekit,我仍在与MKStoreKit斗争 有一个名为“buyAction”的按钮,该按钮必须启动应用内购买流程。我尝试按照以下教程建议实现它,但仍然不起作用: - (IBAction)buyAction:(id)sender { NSLog(@"buyFeature") [[MKStoreManager sharedManager] buyFeature:@"PBonnet.TOEIC3.Package1" onComplete:^(NSS
- (IBAction)buyAction:(id)sender {
NSLog(@"buyFeature")
[[MKStoreManager sharedManager] buyFeature:@"PBonnet.TOEIC3.Package1"
onComplete:^(NSString* purchasedFeature, NSData*purchasedReceipt, NSArray* availableDownloads)
{ package1bought=1;
NSLog(@"success");
}
onCancelled:^
{ NSLog(@"failed purchase");
}];
}
在onComplete
行中,我收到了两条错误消息:“参数名省略”和“预期表达式”
谢谢你的帮助
干杯
按照matt的假设编辑onComplete
行的。现在,日志显示“buyFeature”,但之后什么都没有。应用商店没有启动。日志显示此错误消息:
NSUbiquitousKeyValueStore错误:PBonnet.TOEIC3没有有效的com.apple.developer.ubiquity-kvstore-identifier权限
查看MKStoreManager的标题。以下是buyFeature:onComplete:onCancelled的声明:
- (void) buyFeature:(NSString*) featureId
onComplete:(void (^)(NSString* purchasedFeature, NSData*purchasedReceipt, NSArray* availableDownloads)) completionBlock
onCancelled:(void (^)(void)) cancelBlock;
首先,我们看到,onComplete:
需要一个包含三个参数的块。但是您提供的块没有参数。因此,编译器正确地抱怨您忘记了块参数
实际上,这个问题与MKStoreKit没有任何关系。问题是你不知道C语言,尤其是你不知道块的语法。我建议你读书。好的。有趣。我不明白为什么在官方教程(工具包的开发人员提供的教程)中只显示了一个参数()?它不处理purchasedReceipt和AvailableDownload。我不知道;我对MKStoreKit一无所知。但是您没有包含任何参数,因此无论采用哪种方式(不管它需要一个还是三个参数),它都不会编译。顺便说一句,它们的名称不应该使用前缀MK
。该前缀(以及所有其他两个字符大写字母前缀)属于Apple。