Ошибка NSCoding с SKProduct в Swift
Я пытаюсь сохранить 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)
Я сделал это по-разному, но результат тот же. Как я могу это исправить?
1 ответ
Решение
Мы решили, что мы вставляем SKProduct
массив для синглтона и использовать его. Я знаю, что это плохое решение, но я не знаю другого.