// 声明上传头像相关对象
@property (nonatomic , strong) XMPPvCardCoreDataStorage *xmppvCardStorage;
@property (nonatomic , strong) XMPPvCardTempModule *xmppvCardTempModule;
@property (nonatomic , strong) XMPPvCardAvatarModule *xmppvCardAvatarModule;
//初始化
_xmppvCardStorage = [XMPPvCardCoreDataStorage sharedInstance];
_xmppvCardTempModule = [[XMPPvCardTempModule alloc] initWithvCardStorage:_xmppvCardStorage];
_xmppvCardAvatarModule = [[XMPPvCardAvatarModule alloc] initWithvCardTempModule:_xmppvCardTempModule];
[_xmppvCardTempModule addDelegate:self delegateQueue:dispatch_get_main_queue()];
[_xmppvCardAvatarModule addDelegate:self delegateQueue:dispatch_get_main_queue()];
#param 上传
- (void) upload {
dispatch_queue_t global_queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(global_queue, ^{
NSString *xmppName = [NSString stringWithFormat:@"%d", 101];
NSXMLElement *vCardXML = [NSXMLElement elementWithName:@"vCard"];
[vCardXML addAttributeWithName:@"xmlns" stringValue:@"vcard-temp"];
NSXMLElement *photoXML = [NSXMLElement elementWithName:@"PHOTO"];
NSXMLElement *typeXML = [NSXMLElement elementWithName:@"TYPE" stringValue:@"image/jpeg"];
UIImage *image = //初始化
NSData *dataFromImage = UIImageJPEGRepresentation(image, 1.0f);//图片放缩
NSXMLElement *binvalXML = [NSXMLElement elementWithName:@"BINVAL" stringValue:[dataFromImage base64Encoding]];
[photoXML addChild:typeXML];
[photoXML addChild:binvalXML];
[vCardXML addChild:photoXML];
XMPPvCardTemp * myvCardTemp = [_xmppvCardTempModule myvCardTemp];
if (myvCardTemp) {
myvCardTemp.photo = dataFromImage;
[_xmppvCardTempModule activate: self.xmppStream];
[_xmppvCardTempModule updateMyvCardTemp:myvCardTemp];
} else {
XMPPvCardTemp *newvCardTemp = [XMPPvCardTemp vCardTempFromElement:vCardXML];
newvCardTemp.nickname = xmppName;
[_xmppvCardTempModule activate: self.xmppStream];
[_xmppvCardTempModule updateMyvCardTemp:newvCardTemp];
}
});
}
#param 上传反馈
-(void)xmppvCardTempModule:(XMPPvCardTempModule *)vCardTempModule didReceivevCardTemp:(XMPPvCardTemp *)vCardTemp forJID:(XMPPJID *)jid
{
}