Ich versuche SKProduct in Realm zu speichern, aber beim Betteln versuche ich, SKProduct in NSData zu konvertieren, aber ich bekomme diesen Fehler Beenden App aufgrund der nicht abgefangenen Ausnahme 'NSInvalidArgumentException', Grund: '- [SKProduct encodeWithCoder:]: Unbekannter Selektor an Instanz gesendet 0x14f5cd200' *NSCoding Fehler mit SKProduct in Swift
Meine Klasse
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)
}
}
ich versuche es in einer anderen Klasse zu archivieren
let productData = ProductDataModel(product: product)
let data = NSKeyedArchiver.archivedDataWithRootObject(productData)
Ich habe es auf verschiedene Arten gemacht, aber das Ergebnis ist das gleiche. Wie kann ich es reparieren?
Serialisierung SKProduct würde wahrscheinlich fallen unter Verwendung einer privaten API. Ich würde vorschlagen, nur die erforderlichen Informationen davon zu nehmen und zu speichern – sargeras
Mögliches Duplikat von [wie man SKProduct-Objekt lokal speichert?] (Http://stackoverflow.com/questions/14178790/how-to-save-skproduct-object-locally) – sargeras
@sargeras Nein, ist es nicht. Ich lese diese Fragen und antworte, aber ich kann es nicht in SKProduct-Erweiterung in Swift machen – Alexander