我正在使用 JSQMessageViewController 和 PubNub 编写一个 Swift 聊天应用程序。我实时获取短信并正确显示它们没有问题。但是我一直在检索图像消息,我可以毫无问题地发送图像,但是当接收器获取图像时,它变成了 NSCFString 数据。PubNub 的 didReceiveMessage 函数<UIImage: 0x155d52020>, {256, 342}
中 print(message.data.message) 的输出是 : ,而 print(message.data) 的输出是 :{ message = "<UIImage: 0x155d52020>, {256, 342}"; subscribedChannel = aUpVlGKxjR; timetoken = 14497691787509050;}
有人知道如何将此数据转换为 UIImage 吗?
1 回答
2
您需要将 UIImage 转换为 base64 编码,然后发送到 pubnub 消息,然后将 base64 解码为 UIImage。
编码:
let imageData = UIImagePNGRepresentation(image)
let imageString = imageData.base64EncodedStringWithOptions(.allZeros)
解码:
let imageData = NSData(base64EncodedString: imageString, options: NSDataBase64DecodingOptions.fromRaw(0)!)
var image = UIImage(data: imageData)
于 2015-12-10T18:56:57.150 回答