0
我試圖在領域保存SKProduct,但在乞討我試圖將SKProduct轉換爲NSData,但我得到這個錯誤由於未捕獲異常'NSInvalidArgumentException'終止應用程序,原因: ' - [SKProduct encodeWithCoder:]:無法識別的選擇發送到實例0x14f5cd200' *SKProduct在Swift NSCoding錯誤
我班
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可能會使用私有API。我建議只採取和存儲所需的信息 – sargeras
[如何在本地保存SKProduct對象?](http://stackoverflow.com/questions/14178790/how-to-save-skproduct-object-locally) – sargeras
@sargeras不,它不是。我讀了這個問題和答案,但我不能讓它在SKProduct擴展迅速 – Alexander