gpt4 book ai didi

swift - Swift 中 SKProduct 的 NSCoding 错误

转载 作者:行者123 更新时间:2023-11-30 13:25:31 25 4
gpt4 key购买 nike

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

我的类(class)

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com