Как мне отправить массив [Double] через send multipeersession в Swift? - PullRequest
0 голосов
/ 16 февраля 2019

У меня есть список переменных: [Double] = [1.02, 0.97, ...], и я пытаюсь отправить его одноранговым узлам в сеансе.

Я использую предоставленный Apple шаблон,поэтому они уже настроили функцию принятых данных и функцию sendtoallpeers () (ниже):

func sendToAllPeers(_ data: Data) {
        do {
            try session.send(data, toPeers: session.connectedPeers, with: .reliable)
        } catch {
            print("error sending data to peers: \(error.localizedDescription)")
        }
    }

Обработчик полученных данных находится ниже:

func receivedData(_ data: Data, from peer: MCPeerID) {

    do {

        if let worldMap = try NSKeyedUnarchiver.unarchivedObject(ofClass: ARWorldMap.self, from: data) {

        } else
            if let anchor = try NSKeyedUnarchiver.unarchivedObject(ofClass: ARAnchor.self, from: data) {


        } else if let list = try NSKeyedUnarchiver.unarchivedObject(ofClass: [Double].self, from: data) {




        }

Эта последняя часть, где онаговорит: «Неверная метка аргумента в вызове (есть 'ofClass: from:', ожидается 'ofClasses: from:')"

Как Apple структурировала функции отправки для worldMap и привязки следующим образом:

let anchor = ARAnchor(name: "basicBoard", transform: hitTestResultForLater!.worldTransform)
            guard let data = try? NSKeyedArchiver.archivedData(withRootObject: anchor, requiringSecureCoding: true)
                else { fatalError("can't encode anchor") }
            self.multipeerSession.sendToAllPeers(data)

Как я организовал отправку списка:

guard let data2 = try? NSKeyedArchiver.archivedData(withRootObject: list, requiringSecureCoding: true)
        else { fatalError("can't encode list") }
    self.multipeerSession.sendToAllPeers(data2)

Я не могу понять, что я делаю неправильно.Я весь день искал ответы в Интернете, но не могу их найти.Может кто-нибудь объяснить мне правильный способ отправки массива через многопользовательскую сессию?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...