我正在尝试将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)


我以不同的方式做到了,但结果是一样的。我该如何解决?

最佳答案

我们解决了这个问题,将SKProduct数组粘贴到单例并使用了它。我知道这是一个不好的解决方案,但我不知道。

关于swift - Swift中SKProduct的NSCoding错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37253829/

10-11 13:44