Я пытаюсь безопасно закодировать SceneKit SCNMatrix4
, чтобы он соответствовал NSSecureCoding
, с чем-то вроде следующего:
if let transform = aDecoder.decodeObject(of: SCNMatrix4.self, forKey: DATA_KEY_TRANSFORM) {
self.transform = transform
}
Но это вызывает ошибку компиляции:
Не удается преобразовать значение типа «SCNMatrix4.Type» в ожидаемый тип аргумента «[AnyClass]?» (он же «Необязательно>»)
Очевидно, что SCNMatrix4
не является объектом и является причиной того, что это не работает, но, конечно же, мне не нужно просматривать каждый из 16 Float
в SCNMatrix4
и кодировать каждый с помощью:
aDecoder.decodeFloat(forKey: "someKey")
Конечно нет?
Каков правильный способ безопасного кодирования этого?