доступ к данным, возвращаемым из сокета в swift, используя socket.io - PullRequest
0 голосов
/ 28 января 2020

У меня есть следующее, чтобы прослушивать новые события 'message' с использованием Socket.IO

self.socket.on("message") {data, ack in
            print("received data: \(data)")
            // do stuff
        }

Данные, которые я возвращаю в data, выглядят следующим образом:

[{
    conversationid = 1;
    message = hello world;
    senderid = 1;
}]

Это массив, содержащий один объект, но я изо всех сил пытаюсь получить доступ к отдельным элементам там. Например:

let message = ???

Большое спасибо!

Ответы [ 2 ]

0 голосов
/ 29 января 2020

Поиграл с этим немного больше. Работает следующее:

let socketResponse = data[0] as? NSDictionary
let message = socketResponse!["message"]

Хотя это решение имеет смысл для меня, все равно не имеет смысла, например, решение, предложенное @ 0x0010b. Этот мне тоже показался совершенно здоровым. Благодарен всем, кто может пролить свет на это; -)

0 голосов
/ 29 января 2020

Тип ваших данных [[String : Any]], если вы хотите получить сообщение, попробуйте это:

Swift 5.x:

if let data = data as? [[String : Any]] {

    let message = data[0]["message"] as? String ?? ""
    print(message)
}

В этом репо вы иметь больше информации о том, как реализовать socket.io

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