Когда я отправляю сообщение с использованием iOS на канал PubNub, я могу использовать функцию didReceiveMessage, чтобы получить это сообщение и поместить его в свой tableView. Однако, если я отправляю сообщение через клиента в Dev Dashboard, message.data.message возвращает nil после того, как я попытаюсь передать его как String. Вот функция вопрос:PubNub текст сообщения, возвращающий нуль?
func client(client: PubNub, didReceiveMessage message: PNMessageResult) {
print("Received: %", message.data.message)
let newMessage:String? = message.data.message as? String
print(newMessage) // returns nil
self.messagesArray.append(newMessage!)
dispatch_async(dispatch_get_main_queue()) {
self.messageTableView.reloadData()
}
}
я получаю следующий ответ в консоли от print("Received: %", message.data.message)
:
Received: % Optional({
text = test;
})
Однако print(newMessage)
возвращается ноль. Что я делаю не так?
Спасибо!
EDIT: Я получаю то же самое, когда пытаюсь получить сообщения из функции historyForChannel.
//get history
pubNub.historyForChannel("channelname" as String, withCompletion: { (result, status) -> Void in
print(status)
if status == nil {
if result!.data.messages.count > 0 {
let historyMessages = result!.data.messages.description as? [String]
print(result)
for item in historyMessages!{
self.messagesArray.append(item)
}
}
}
})
historyMessages равна нулю, даже если результат принтами:
Optional({
Operation = History;
Request = {
Authorization = "not set";
Method = GET;
Origin = "pubsub.pubnub.com";
"POST Body size" = 0;
Secure = YES;
URL = "...redacted";
UUID = "...redacted";
};
Response = {
"Processed data" = {
end = 14609023551682481;
messages = (
"technically ",
{
text = "Well..ok then";
},
hi,
"really ",
{
text = "Well..ok then";
},
Как получить текст из возвращенных сообщений?