XMPPFramework - 检索与JID关联的名称

时间:2014-03-10 21:10:06

标签: ios xmpp openfire xmppframework

在Openfire中,用“用户名”(用作JID的基础)和描述性“名称”创建用户。如何在XMPP中检索给定JID的名称?我正在使用XMPPFramework。

2 个答案:

答案 0 :(得分:1)

您可以使用 XMPPUserCoreDataStorageObject 中的JID检索用户的显示名称,如下所示:

XMPPJID *userJID = @"shakespeare";

XMPPUserCoreDataStorageObject *user = [[[self appDelegate] xmppRosterStorage]
                                           userForJID:userJID
                                           xmppStream:[[self appDelegate] xmppStream]
                                 managedObjectContext:[[self appDelegate] managedObjectContext_roster]];

NSString *userDisplayName = user.displayName;

答案 1 :(得分:0)

在设置XMPPFramework时,您是否正在使用名册的CoreData部分?您可以从设置的存储类(例如,XMPPRosterCoreDataStorage)通过JID获取用户。

从这里,您可以通过存储类(例如:

)从名册请求中获取存储的用户

[xmppStorage userForJID:jid ...]

并且从这里开始,结果对象(XMPPUserCoreDataStorageObject)具有昵称',' displayName'等字段。还可以从该JID的关联vCard获得一些信息。