Я использую MultipeerConnectivity
, чтобы разделить SCNNodes
позицию в многопользовательском AR session
.
Когда я архивирую (с NSKeyedArchiver.archivedData(withRootObject: someARNode, requiringSecureCoding: true)
)
И разархивировать (с if let node = try NSKeyedUnarchiver.unarchivedObject(ofClass:SCNNode.self, from: data) {
)
Все работает нормально, но сейчас я пытаюсь отправить пользовательский объект, как это:
struct ARUser: Codable {
var idUser : String
var position: [Double]
}
Когда я пытаюсь разархивировать объект, полученный с NSKeyedUnarchiver.unarchivedObject
, это выдает мне ошибку.
if let node = try NSKeyedUnarchiver.unarchivedObject(ofClass:ARUser.self, from: data) {...}
Я получаю синтаксическую ошибку: Incorrect argument label in call (have 'ofClass:from:', expected 'ofClasses:from:')
Но если я изменю функцию в соответствии с предложением компилятора:
if let node = try NSKeyedUnarchiver.unarchivedObject(ofClasses:[ARUser.self], from: data) {..}
Я получаю следующую синтаксическую ошибку: Cannot convert value of type 'ARUser.Type' to expected element type 'AnyObject.Type'
Итак, вопрос здесь в том, как правильно разархивировать пользовательские объекты?