XMPPFramework - 如何获取当前登录用户的显示名称

3
在我使用XMPPFramework的应用程序中,我有一个登录页面来验证一个用户。一旦登录成功,我希望在我的状态页面中显示该用户的displayName。displayName是XMPPUserCoreDataStorageObject中的NSString。
以下代码行返回当前登录用户的XMPPJID。我认为这对于检查我的花名册以获取他的displayName很有用。
[[[self appDelegate] xmppStream] myJID];

然而,将上述代码放入下面的代码中会返回null
XMPPUserCoreDataStorageObject *user = [[[self appDelegate] xmppRosterStorage]
                                           userForJID:[[[self appDelegate] xmppStream] myJID]
                                           xmppStream:[[self appDelegate] xmppStream]
                                           managedObjectContext:[[self appDelegate] managedObjectContext_roster]];

希望能得到有关如何检索当前用户的displayName的任何建议。


1
只有在将自己添加到联系人列表中时才会起作用,默认情况下自己的JID不在联系人列表中。 - vitalyster
@vitalyster:如何将自己添加到我的花名册中? - Alaa Eldin
2个回答

1

正如vitalyster在上面的评论中提到的那样,如果我已登录,就没有办法检索我的显示名称。

为了验证这一点,我去了我的Openfire服务器设置。

用户/组 > 用户摘要 > KeithOYS > 花名册中,花名册列表中没有同名用户KeithOYS

对于每个其他用户也适用相同的概念。


简而言之,每个用户在他们的联系人列表中都拥有除自己以外的所有其他用户(只要它们分类在同一组下)。

0

我通过以下代码获取了已登录用户的用户名。

XMPPJID *myjid = [[[self appDelegate]xmppStream]myJID];
NSString *userName = [NSString stringWithFormat:@"%@",myjid.user];

希望它能帮助到某人。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接