方法未达到完成块
我正在使用SKStoreProductViewController
通过以下方法显示iTunes产品。 该方法被调用,但我没有成功或错误。 知道为什么吗?:
@IBAction func BuySomething(sender : AnyObject) { NSLog("%@","called");//gets called let storeViewController:SKStoreProductViewController = SKStoreProductViewController(); storeViewController.delegate = self; var someitunesid:String = "676059878"; var productparameters = [SKStoreProductParameterITunesItemIdentifier:someitunesid]; storeViewController.loadProductWithParameters(productparameters, { (success: Bool!, error: NSError!) -> Void in if success { NSLog("%@",success)//no call self.presentViewController(storeViewController, animated: true, completion: nil); } else { NSLog("%@", error)//no call } }) }
由于某些原因, SKStoreProductViewController
无法在模拟器上运行,您必须在实际设备上尝试它。
我刚刚在实际设备上尝试了这个,并获得了成功调用回调后在实际设备上的样子截图:
以下是我用过的代码:
import UIKit import StoreKit class ViewController: UIViewController,SKStoreProductViewControllerDelegate { override func viewDidLoad() { super.viewDidLoad() } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } @IBAction func BuySomething(sender : AnyObject) { NSLog("%@","called");//gets called let storeViewController:SKStoreProductViewController = SKStoreProductViewController(); storeViewController.delegate = self; var someitunesid:String = "676059878"; var productparameters = [SKStoreProductParameterITunesItemIdentifier:someitunesid]; storeViewController.loadProductWithParameters(productparameters, { (success: Bool!,error: NSError!) -> Void in if success { NSLog("%@",success) self.presentViewController(storeViewController, animated: true, completion: nil); } else { NSLog("%@", error) } }) } // this is SKStoreProductViewControllerDelegate implementation func productViewControllerDidFinish(viewController: SKStoreProductViewController!) { } }