0

Realm に SKProduct を保存しようとしていますが、物乞いをしながら SKProduct を NSData に変換しようとしていますが、このエラーが発生していますTerminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[SKProduct encodeWithCoder:]: unrecognized selectorインスタンス 0x14f5cd200' に送信 *

私のクラス

import Foundation
import StoreKit

class ProductDataModel: NSObject, NSCoding {

    var product = SKProduct()

    // MARK: - var and let
    private let coderKey = "ProductDataModel"

    override init() {
        super.init()
    }

    convenience init(product: SKProduct) {
        self.init()
        self.product = product
    }

    required init?(coder aDecoder: NSCoder) {
        self.product = aDecoder.decodeObjectForKey(coderKey) as! SKProduct

    }

    func encodeWithCoder(aCoder: NSCoder) {
        aCoder.encodeObject(self.product, forKey: coderKey)
    }
}

別のクラスでアーカイブしようとしています

 let productData = ProductDataModel(product: product)
 let data = NSKeyedArchiver.archivedDataWithRootObject(productData)

さまざまな方法で実行しましたが、結果は同じです。どうすれば修正できますか?

4

1 に答える 1

0

SKProductシングルトンに配列を貼り付けて使用することで解決しました。それが悪い解決策であることは知っていますが、別の解決策は知りません。

于 2016-05-18T09:55:34.807 に答える