0

我还在为 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,我收到 2 条错误消息:“参数名称省略”和“预期表达式”。

谢谢你的帮助。

干杯

按照马特的假设编辑onComplete行。现在,日志显示“buyFeature”,但之后什么也没有。App Store 未启动。日志显示此错误消息:

NSUbiquitousKeyValueStore error: PBonnet.TOEIC3 has no valid com.apple.developer.ubiquity-kvstore-identifier entitlement.

4

1 回答 1

1

查看 MKStoreManager 的标题。这是声明buyFeature:onComplete:onCancelled

- (void) buyFeature:(NSString*) featureId
         onComplete:(void (^)(NSString* purchasedFeature, NSData*purchasedReceipt, NSArray* availableDownloads)) completionBlock
        onCancelled:(void (^)(void)) cancelBlock;

因此,首先,我们看到onComplete:需要一个带有三个参数的块。但是你提供了一个没有参数的块。因此,编译器正确地抱怨您忘记了块参数。

实际上,这个问题与 MKStoreKit 无关。问题是你不懂 C - 特别是你不知道块的语法。我建议阅读Apple 对此主题的解释

于 2014-02-06T21:30:06.003 回答