0

我正在尝试将 SKProduct 保存在 Realm 中,但在乞求时,我正在尝试将 SKProduct 转换为 NSData,但由于未捕获的异常“NSInvalidArgumentException”而出现此错误正在终止应用程序,原因:'-[SKProduct encodeWithCoder:]:无法识别的选择器发送到实例 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 回答