【发布时间】:2016-09-03 10:11:09
【问题描述】:
我用过
pod 'XMPPFramework'
在我的演示项目中。我建立了联系,并适当地放置了委托方法。
我进行了简单的聊天,我正在使用
发送消息 let msg = XMPPMessage(type: "chat", to: senderJID)
msg.addBody(message)
self.appDelegate.xmppStream.sendElement(msg)
在接收端,我正在做
func xmppStream(sender: XMPPStream!, didReceiveMessage message: XMPPMessage!) {
messageStr = messageStr + message.body()
print("Did receive message \(messageStr)")
}
现在我想发送图片。我在objective-c中浏览并找到了一些使用附件的代码,如下所示。
NSData *dataF = UIImagePNGRepresentation(SendImage);
NSString *imgStr=[dataF base64Encoding];
NSXMLElement *body = [NSXMLElement elementWithName:@"body"];
[body setStringValue:messageStr];
NSXMLElement *imgAttachement = [NSXMLElement elementWithName:@"attachment"];
[imgAttachement setStringValue:imgStr];
NSXMLElement *message = [NSXMLElement elementWithName:@"message"];
[message addAttributeWithName:@"type" stringValue:@"chat"];
[message addAttributeWithName:@"to" stringValue:chatWithUser];
[message addChild:body];
[message addChild:imgAttachement];
[self.xmppStream sendElement:message];
我的 Swift 代码,我从上面的 Objective-C 代码转换而来。
var dataF = UIImagePNGRepresentation(image)
var imgStr = dataF.base64Encoding()
let root = NSXMLElement(name: "find_sites")
var body = NSXMLElement.elementWithName("body")
body.stringValue = messageStr
var imgAttachement = NSXMLElement.elementWithName("attachment")
imgAttachement.stringValue = imgStr
var message = NSXMLElement.elementWithName("message")
message.addAttributeWithName("type", stringValue: "chat")
message.addAttributeWithName("to", stringValue: senderJID)
message.addChild(body)
message.addChild(imgAttachement)
self.xmppStream.sendElement(message)
如果我将此代码转换为 Swift,我在 NSXMLElement 上遇到错误,我应该怎么做,如何实现它。
我还阅读了XMPPStream class,我没有发现任何有用的东西。
谢谢。
【问题讨论】:
-
你遇到了什么错误?
-
使用未解析的标识符“NSXMLElement”。我还将代码更改为 Swift,让我也添加有问题的 swift 代码。
-
尝试使用
XMPPMessage类 -
XMPPMessage 位于 XMPPFramework 的核心
-
我在简单的文本中使用 XMPPMessage,而对于图像,我在库中找不到任何方法。
标签: ios image sockets xmppframework