XMPPFramework - 创建电子名片 [英] XMPPFramework - Create vCard

查看:26
本文介绍了XMPPFramework - 创建电子名片的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用以下代码在创建 vCard 时无济于事.它总是在 if 块中.有人可以看看我是否遗漏了什么吗?

I used following code to no avail in creating a vCard. It always goes in if block. Can someone please look into it to see if I am missing anything?

xmppvCardStorage = [XMPPvCardCoreDataStorage sharedInstance];
xmppvCardTempModule = [[XMPPvCardTempModule alloc] initWithvCardStorage:xmppvCardStorage];
XMPPvCardTemp *myvCardTemp = [xmppvCardTempModule myvCardTemp];

if (!myvCardTemp)
{
    NSXMLElement *vCardXML = [NSXMLElement elementWithName:@"vCard" xmlns:@"vcard-temp"];
    XMPPvCardTemp *newvCardTemp = [XMPPvCardTemp vCardTempFromElement:vCardXML];
    myvCardTemp = newvCardTemp;
}

[myvCardTemp setNickname:@"someNick"];
[myvCardTemp setMiddleName:@"somegender"];
[xmppvCardTempModule updateMyvCardTemp:myvCardTemp];

我已经尝试过这个,但它仍然无法正常工作......被调用以获取 vcard 的函数总是返回 nil.

I have tried this but its still not working... The function which is called to get the vcard returns the nil always.

- (XMPPvCardTemp *)vCardTempForJID:(XMPPJID *)jid shouldFetch:(BOOL)shouldFetch

此函数返回 nil 值.有什么我遗漏的吗?

This function returns the nil value. Is there anything I am missing?

另一件事是它向日志发送错误:

One other thing is that it sends an error to the log:

Error Saving - Error Domain=NSCocoaErrorDomain Code=1570 操作无法完成.(Cocoa 错误 1570.)

推荐答案

我终于把 vcard 编辑成这样了

Finally this is the way i have done vcard edit

 -(void)Editvcard
 {
NSMutableDictionary *getdic = [[NSMutableDictionary alloc] init];
getdic = [[NSUserDefaults standardUserDefaults] valueForKey:@"UservCard"];

NSXMLElement *vCardXML = [NSXMLElement elementWithName:@"vCard" xmlns:@"vcard-temp"];
XMPPvCardTemp *newvCardTemp = [XMPPvCardTemp vCardTempFromElement:vCardXML];
//  myvCardTemp = newvCardTemp;
//}
[newvCardTemp setGivenName:[getdic valueForKey:@"username"]];
[newvCardTemp setSortString:[getdic valueForKey:@"status"]];
[newvCardTemp setJid:[XMPPJID jidWithString:[[NSUserDefaults standardUserDefaults] stringForKey:@"kXMPPmyJID"]]];
[newvCardTemp setFormattedName:[getdic valueForKey:@"username"]];
[newvCardTemp setEmailIDnew:[getdic valueForKey:@"emailid"]];    


NSString *img_name = [DatabaseAccess documentsPathForFileName:[getdic valueForKey:@"userimage"]];
NSData *pngData = [NSData dataWithContentsOfFile:img_name];

NSString *strThumb = @"";
if([[[UIDevice currentDevice] systemVersion] floatValue] >=7)
{
    //Encode Image Data
    strThumb = [Base64 encode:pngData];
    //strMapThumb = [pngData base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
}
else
{
    //Encode Image Data
    strThumb = [Base64 encode:pngData];
}

[newvCardTemp setPhoto:strThumb];
[xmppvCardTempModule updateMyvCardTemp:newvCardTemp];


}

希望对你有帮助....

hope it helps you....

这篇关于XMPPFramework - 创建电子名片的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆