如何在swift中使用completionBlock?
问题描述:
我想利用swift的SKStoreProductViewController,但我的语法错误,特别是与我的完成块。如何在swift中使用completionBlock?
这里是我的代码:
let storeViewController:SKStoreProductViewController = SKStoreProductViewController();
storeViewController.delegate = self;
var productparameters = [SKStoreProductParameterITunesItemIdentifier:someitunesid];
storeViewController.loadProductWithParameters(productparameters,
(success: Bool!, error: NSError!) -> Void in
if success {
self.presentViewController(storeViewController, animated: true, completion: nil);
} else {
NSLog("%@", error)
}
)
运行在此之后,我得到了error:NSError!),-> Void
之间的expected "," separator
错误这没有意义,我作为苹果文档呼吁:
func loadProductWithParameters(_ parameters: [NSObject : AnyObject]!,
completionBlock block: ((Bool, NSError!) -> Void)!)
我在做什么错了?
答
你99%在那里,你只需要括号在自家附近有正确的关闭语法:
storeViewController.loadProductWithParameters(productparameters, { (success: Bool!, error: NSError!) -> Void in
if success {
self.presentViewController(storeViewController, animated: true, completion: nil);
} else {
NSLog("%@", error)
}
})