我怎样才能得到朋友vcard avtar照片xmpp ios
问题描述:
我怎样才能得到朋友vcard avtar照片xmpp ios?请帮我任何一个...感谢提前我怎样才能得到朋友vcard avtar照片xmpp ios
XMPPvCardTemp * myvCardTemp = [自我xmppvCardTempModule]; //或者检查是否存在不
if (!myvCardTemp)//if not then create a new vcard
{
NSXMLElement *vCardXML = [NSXMLElement elementWithName:@"vCard" xmlns:@"vcard-temp"];
XMPPvCardTemp *newvCardTemp = [self.xmppvCardTempModule vCardTempFromElement:vCardXML];
[newvCardTemp setNickname:userName];
[self updateMyvCardTemp:newvCardTemp];
}
NSString *str = [[NSUserDefaults standardUserDefaults] stringForKey:user_ID];
[self.xmppvCardTempModule fetchvCardTempForJID:str];
答
初始化并激活xmppvCardAvatarModule模块。
- (void) fetchVCardFor:(NSString *)toUser
{
XMPPJID *myJID = [XMPPJID jidWithUser:[toUser stringByReplacingOccurrencesOfString:@"+" withString:@""] domain:self.domain resource:self.resource];
[self.xmppvCardTempModule fetchvCardTempForJID:myJID useCache:YES];
}
您将获得的智商,结果如下:
- (BOOL)xmppStream:(XMPPStream *)sender didReceiveIQ:(XMPPIQ *)iq
{
XMPPvCardTemp *vCardTemp = [XMPPvCardTemp vCardTempCopyFromIQ:iq];
if (vCardTemp != nil)
{
[self _updatevCardTemp:vCardTemp forJID:[iq from]];
return YES;
}
return NO;
}
答
你可以得到你的朋友,电子名片头像图片通过XMPPUserCoreDataStorageObject信息(如果你的朋友已经设置有图像)。
-(UIImage*)GetFriendImage:(XMPPUserCoreDataStorageObject *)user {
//Check user has image on XMPPUserCoreDataStorageObject or not.
if (user.photo != nil) {
return user.photo;
} else {
//Retrive image from xmppvCardAvatarModule
NSData *photoData = [[[self appDelegate]
xmppvCardAvatarModule] photoDataForJID:user.jid];
//Check xmppvCardAvatarModule has image or not, if xmppvCardAvatarModule return nil means your friend not set there image, so return your any default image.
if (photoData != nil) {
return [UIImage imageWithData:photoData];
} else {
return [UIImage imageNamed:@"defaultImage"];
}
}
}
这里[self appDelegate]
是定义为
- (AppDelegate *)appDelegate {
return (AppDelegate *)[[UIApplication sharedApplication] delegate];
}
我定义我所有的XMPP对象属性AppDelegate.h文件
@property (nonatomic, readonly) XMPPvCardAvatarModule *xmppvCardAvatarModule;
电子名片,进口#import "XMPPvCardAvatarModule.h"
文件或其他检查这个文件已经导入#import "XMPPFramework.h"
文件比忽略重新导入。
您可以使用自己的JID IKE在此
XMPPUserCoreDataStorageObject *user = [[[self appDelegate] xmppRosterStorage]
userForJID:userJID
xmppStream:[[self appDelegate] xmppStream]
managedObjectContext:[[self appDelegate] managedObjectContext_roster]];
而在这之后通过此用户对象GetFriendImage
以检索好友图像检索XMPPUserCoreDataStorageObject“用户对象”。
试试这个http://*.com/questions/13227017/xmppframework-how-can-i-update-my-own-avatar-image可能会有帮助。 – 2014-12-19 05:57:49
您好Velmurugan,实际上我能够成功地取消我的avtar。但现在无法获得朋友avtar并将其显示在朋友表视图中。请帮助我解决这个问题,因为iam完全是xmpp的新功能。并且非常感谢您的快速回复:0 – 2014-12-19 06:21:03