【发布时间】:2014-07-05 10:02:29
【问题描述】:
每当我收到任何新消息时,这两个方法都会被调用两次。
- (BOOL)xmppStream:(XMPPStream *)sender didReceiveIQ:(XMPPIQ *)iq
- (void)xmppStream:(XMPPStream *)sender didReceiveMessage:(XMPPMessage *)message
我正在向服务器发送请求以使用以下代码获取我的花名册。
NSXMLElement *query = [NSXMLElement elementWithName:@"query" xmlns:@"jabber:iq:roster"];
XMPPIQ *iq = [XMPPIQ iq];
[iq addAttributeWithName:@"id" stringValue:@"buddyRequest"];
[iq addAttributeWithName:@"to" stringValue:@"54.186.107.171"];
[iq addAttributeWithName:@"type" stringValue:@"get"];
[iq addChild:query];
[self.xmppStream sendElement:iq];
谁能指出问题出在哪里?
谢谢。
【问题讨论】:
-
第一个代码块你只调用一次吗?当您的委托方法被调用时,对象是否相同(尤其是指针)?
-
感谢您的重播。是的。我只有一次。好吧,当我从 spark 向我的应用程序发送消息时,DidReciveMessage 被调用了 2 次。所以我的表格视图在我的应用程序中显示了两条相同的消息。
-
你设置XMPPStream的代理多少次了?
-
[xmppStream addDelegate:self delegateQueue:dispatch_get_main_queue()];这行我打了两次。
-
谢谢。我的问题已经解决了。实际上,对于第二行,我输入了 XMPPStream insted of xmpproster。非常感谢
标签: ios xmpp xmppframework