Ошибка 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 массив для синглтона и использовать его. Я знаю, что это плохое решение, но я не знаю другого.

Другие вопросы по тегам