0

エラー メッセージが表示され続けます (Type StoreViewControllerdoes not conform to protocol SKPaymentTransactionObserver) コードを何度か見直しました。おそらく、私は一連の新鮮な目を必要としているか、コーディングに実際に何か問題がある可能性が高いと感じています。

エラーの数を 1 つに減らすために、コードの最後に多数の右中括弧を追加する必要がありました。しかし、その後、試してみると再び上昇します。したがって、中括弧の問題ではないかもしれません。

解決策を手伝っていただくか、エラーを見つけてください。(エックスコード 9.3)

import UIKit

import StoreKit

class StoreViewController: UIViewController , SKPaymentTransactionObserver , SKProductsRequestDelegate {


        @IBOutlet weak var storeLabel: UILabel!

        @IBOutlet weak var infoLabel: UILabel!

        @IBOutlet weak var buyButton: UIButton!

        @IBOutlet weak var cancelButton: UIButton!

        var product: SKProduct?

        var productID = "com.Haleemani.SilkyDragon.removeads"


        override func viewDidLoad() {
            super.viewDidLoad()

        }

        override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()

        }

        @IBAction func dimissView(_ sender: Any) {
            dismiss(animated: true, completion: nil)
        }


        @IBAction func purchase(_ sender: Any) {
            let payment = SKPayment(product: product!)
            SKPaymentQueue.default().add(payment)

        }

        func getPurchaseInfo() {
            if SKPaymentQueue.canMakePayments() {

                let request = SKProductsRequest(productIdentifiers: NSSet(objects: self.productID) as! Set<String>)

                request.delegate = self
                request.start()

            } else {

                storeLabel.text = "Unsuccessful"
                infoLabel.text = "Check your settings and try again"

            }

        }

        func productsRequest(_ request: SKProductsRequest, didReceive response: SKProductsResponse) {
            var products = response.products
            if (products.count == 0) {

                storeLabel.text = "Unsuccessful"
                infoLabel.text = "Cheack your settings and try again"
            } else {

                product = products [0]
                storeLabel.text = product!.localizedTitle
                infoLabel.text = product!.localizedDescription
                buyButton.isEnabled = true

                let invalids = response.invalidProductIdentifiers

                for product in invalids {
                    print ("product not found: \(product)")

                }
            }
        }

        func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
            for transaction in transactions {

                switch transaction.transactionState {

                case SKPaymentTransactionState.purchased:
                    SKPaymentQueue.default().finishTransaction(transaction)
                    storeLabel.text = "Thank You"
                    infoLabel.text = "You have removed Watermark in all your images Forever"
                    buyButton.isEnabled = false

                case SKPaymentTransactionState.failed:
                        SKPaymentQueue.default().finishTransaction(transaction)
                    storeLabel.text = "Thank You"
                    infoLabel.text = "You have removed Watermark in all your images Forever"

                default:
                    break
                }
            }
        }
    }
}
4

0 に答える 0