首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift中NSCoding与SKProduct的误差

Swift中NSCoding与SKProduct的误差
EN

Stack Overflow用户
提问于 2016-05-16 12:21:27
回答 1查看 380关注 0票数 0

我试图在领域中保存SKProduct,但在乞求时,我试图将SKProduct转换为NSData,但由于未命名的异常'NSInvalidArgumentException',原因是:'-SKProduct::发送到实例0x14f5cd200' *的错误终止应用程序。

我的课

代码语言:javascript
复制
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)
    }
}

我试着把它存档在另一个类中

代码语言:javascript
复制
 let productData = ProductDataModel(product: product)
 let data = NSKeyedArchiver.archivedDataWithRootObject(productData)

我用不同的方式做了这件事,但结果是一样的。我怎么才能修好它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-18 09:55:34

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37253829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档