Ios MKStoreKit购买错误

Ios MKStoreKit购买错误,ios,mkstorekit,Ios,Mkstorekit,我仍在与MKStoreKit斗争 有一个名为“buyAction”的按钮,该按钮必须启动应用内购买流程。我尝试按照以下教程建议实现它,但仍然不起作用: - (IBAction)buyAction:(id)sender { NSLog(@"buyFeature") [[MKStoreManager sharedManager] buyFeature:@"PBonnet.TOEIC3.Package1" onComplete:^(NSS

我仍在与MKStoreKit斗争

有一个名为“buyAction”的按钮,该按钮必须启动应用内购买流程。我尝试按照以下教程建议实现它,但仍然不起作用:

- (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。