如何在iOS中使用xmpp阻止朋友?

我正在处理聊天应用程序。 我想阻止朋友。 我正在使用xmpp框架的XEP-0016扩展。

这是我的代码..

- (void)setupXMPPPrivacy { NSLog((@"%s [Line %d] "), __PRETTY_FUNCTION__, __LINE__); //Init XMPPPrivacy List //xmppPrivacy = [[XMPPPrivacy alloc] init]; xmppPrivacy = [[XMPPPrivacy alloc] initWithDispatchQueue:dispatch_get_main_queue()]; //Activate xmpp modules [xmppPrivacy activate:xmppStream]; //Delegate XMPPPrivacy [xmppPrivacy addDelegate:self delegateQueue:dispatch_get_main_queue()]; } - (void)privacyBlock:(XMPPJID *)jid { NSXMLElement *privacyElement = [XMPPPrivacy privacyItemWithType:@"jid" value:jid.bare action:@"deny" order:1]; [XMPPPrivacy blockIQs:privacyElement]; [XMPPPrivacy blockMessages:privacyElement]; [XMPPPrivacy blockPresenceIn:privacyElement]; [XMPPPrivacy blockPresenceOut:privacyElement]; NSLog(@"-------> PRIVACY ELEMENT: %@", privacyElement); NSArray *arrayPrivacy = [[NSArray alloc] initWithObjects:privacyElement, nil]; [xmppPrivacy setListWithName:@"public" items:arrayPrivacy]; } 

但是,这不起作用。 我究竟做错了什么?

请帮助。 谢谢。

我遇到了同样的麻烦。 第一个问题是UUID生成器,它返回零。 但在iOS 5中添加了NSUUID类。 所以使用[[NSUUID UUID] UUIDString]我解决了这个问题。 第二个问题是我的大错。 我初始化了xmmpStram并且请求阻止,但打开流需要一些时间。所以,我在打开流之前请求了。