如何检测到我的名单列表已更改,某些正文已添加或删除?
我使用该代码在启动时获取名单
- (BOOL)xmppStream:(XMPPStream *)sender didReceiveIQ:(XMPPIQ *)iq
{
DDLogVerbose(@"%@: %@ - %@", THIS_FILE, THIS_METHOD, [iq elementID]);
NSXMLElement *queryElement = [iq elementForName: @"query" xmlns: @"jabber:iq:roster"];
if (queryElement)
{
NSArray *itemElements = [queryElement elementsForName: @"item"];
//[self.cts removeAllObjects];
for (int i=0; i<[itemElements count]; i++)
{
NSString *jid = [[[itemElements objectAtIndex:i] attributeForName:@"jid"] stringValue];
[self.cts addObject:jid];
}
NSLog(@"\nRoster ID's %@",self.cts);
}
答案 0 :(得分:0)
1)所有后续的名册更改将被“推送”给您,其中IQ数据包包含“jabber:iq:roster”有效负载,您需要跟踪收到项目的“订阅”属性并对您的模型进行更改。 2)XMPPFramework已经包含XMPPRoster扩展,它可以为您完成所有工作,只需激活扩展,请参阅XMPPFramework示例。