1

我正在开发聊天应用程序。我想屏蔽朋友。我正在使用 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];
}

但是,这是行不通的。我究竟做错了什么?

请帮忙。谢谢。

4

1 回答 1

0

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

于 2014-02-09T19:49:16.727 回答