Swift:无法将SKProductsRequestDelegate协议添加到GameScene类?

时间:2015-08-30 19:16:48

标签: swift sprite-kit in-app-purchase

所以我正在尝试在我的精灵工具包游戏中实现应用程序购买,我在Swift工作。我知道我需要将SKProductsRequestDelegateSKPaymentTransactionObserver协议添加到我的GameScene类中才能执行此操作,但是当我添加它们时,我收到错误:

Type 'GameScene' does not conform to protocol 'SKProductsRequestDelegate'

以及SKPaymentTransactionObserver的类似错误。

我导入了StoreKit,这是我的代码:

import SpriteKit
import AVFoundation
import StoreKit

class GameScene: SKScene, SKPhysicsContactDelegate, SKProductsRequestDelegate, SKPaymentTransactionObserver {

我做错了什么?

2 个答案:

答案 0 :(得分:6)

您可能拥有旧版本的函数paymentQueue,如下所示:

func paymentQueue(queue: SKPaymentQueue, updatedTransactions transactions: [AnyObject])    {... }

现在这个函数声明如下:

func paymentQueue(queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction])    {... }

productRequest应该声明如下:

func productsRequest (request: SKProductsRequest, didReceiveResponse response: SKProductsResponse) {... }

这是因为您必须实现此方法以符合协议

答案 1 :(得分:0)

我不熟悉Swift(但是)似乎Swift所谓的协议是我们其他人所说的接口
如果我是对的,那么你需要自己实施协议u&#34;签署的所有方法。 on(即承诺您的类将实现的编译器)。 因此,如果一个协议有一个方法INotfiyPropertyChanged 你需要在你的类中自己编写这个方法,以便你的类符合协议。< / p>