无法使用 XMPPFramework 获取 VCard
Unable to get VCard using XMPPFramework
我无法使用此代码使用 XMPPFramework 获取 VCard 信息
XMPPJID *jid = [XMPPJID jidWithString:[NSString stringWithFormat:@"%@@myserver", myId]];
XMPPvCardTemp *vcard = [[DBChatManager shareInstance].xmppvCardTempModule vCardTempForJID:jid shouldFetch:YES];
它 return 没有响应,但在日志记录中我看到它获取了 VCard。虽然我可以成功更新和创建 VCard。
经过大量搜索,我发现在 class XMPPvCardTempModule.m 中,我的团队成员评论了以下几行
XMPPvCardTemp *vCardTemp = [XMPPvCardTemp vCardTempCopyFromIQ:iq];
if (vCardTemp != nil)
{
[self _updatevCardTemp:vCardTemp forJID:[iq from]];
return YES;
}
取消注释以上几行后,我能够在
中获取针对 JID 的 VCard 详细信息
- (void)xmppvCardTempModule:(XMPPvCardTempModule *)vCardTempModule
didReceivevCardTemp:(XMPPvCardTemp *)vCardTemp
forJID:(XMPPJID *)jid
根据我的情况使用
验证后使用 XMPPvCardCoreDataStorage 和 XMPPvCardTempModule
- (void)xmppStreamDidAuthenticate:(XMPPStream *)sender {
[self goOnline];
if ([xmppStream isAuthenticated]) {
NSLog(@"authenticated");
xmppvCardStorage = [[XMPPvCardCoreDataStorage alloc] initWithInMemoryStore];
xmppvCardTempModule = [[XMPPvCardTempModule alloc] initWithvCardStorage:xmppvCardStorage];
[xmppvCardTempModule activate:[self xmppStream]];
[xmppvCardTempModule addDelegate:self delegateQueue:dispatch_get_main_queue()];
[xmppvCardTempModule fetchvCardTempForJID:[sender myJID] ignoreStorage:YES];
}
}
- (void)xmppvCardTempModule:(XMPPvCardTempModule *)vCardTempModule didReceivevCardTemp:(XMPPvCardTemp *)vCardTemp forJID:(XMPPJID *)jid{
XMPPvCardTemp *vCard = [xmppvCardStorage vCardTempForJID:jid xmppStream:xmppStream];
NSLog(@"%@", vCard.description);
}
我无法使用此代码使用 XMPPFramework 获取 VCard 信息
XMPPJID *jid = [XMPPJID jidWithString:[NSString stringWithFormat:@"%@@myserver", myId]];
XMPPvCardTemp *vcard = [[DBChatManager shareInstance].xmppvCardTempModule vCardTempForJID:jid shouldFetch:YES];
它 return 没有响应,但在日志记录中我看到它获取了 VCard。虽然我可以成功更新和创建 VCard。
经过大量搜索,我发现在 class XMPPvCardTempModule.m 中,我的团队成员评论了以下几行
XMPPvCardTemp *vCardTemp = [XMPPvCardTemp vCardTempCopyFromIQ:iq];
if (vCardTemp != nil)
{
[self _updatevCardTemp:vCardTemp forJID:[iq from]];
return YES;
}
取消注释以上几行后,我能够在
中获取针对 JID 的 VCard 详细信息- (void)xmppvCardTempModule:(XMPPvCardTempModule *)vCardTempModule
didReceivevCardTemp:(XMPPvCardTemp *)vCardTemp
forJID:(XMPPJID *)jid
根据我的情况使用
验证后使用 XMPPvCardCoreDataStorage 和 XMPPvCardTempModule
- (void)xmppStreamDidAuthenticate:(XMPPStream *)sender {
[self goOnline];
if ([xmppStream isAuthenticated]) {
NSLog(@"authenticated");
xmppvCardStorage = [[XMPPvCardCoreDataStorage alloc] initWithInMemoryStore];
xmppvCardTempModule = [[XMPPvCardTempModule alloc] initWithvCardStorage:xmppvCardStorage];
[xmppvCardTempModule activate:[self xmppStream]];
[xmppvCardTempModule addDelegate:self delegateQueue:dispatch_get_main_queue()];
[xmppvCardTempModule fetchvCardTempForJID:[sender myJID] ignoreStorage:YES];
}
}
- (void)xmppvCardTempModule:(XMPPvCardTempModule *)vCardTempModule didReceivevCardTemp:(XMPPvCardTemp *)vCardTemp forJID:(XMPPJID *)jid{
XMPPvCardTemp *vCard = [xmppvCardStorage vCardTempForJID:jid xmppStream:xmppStream];
NSLog(@"%@", vCard.description);
}