首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XMPPFramework -创建vCard

XMPPFramework -创建vCard
EN

Stack Overflow用户
提问于 2014-01-28 13:25:59
回答 1查看 1.5K关注 0票数 2

我在创建vCard时使用了以下代码,但无济于事。它总是放在if块中。有没有人可以检查一下,看看我是不是遗漏了什么?

代码语言:javascript
复制
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。

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

此函数返回nil值。我是不是遗漏了什么?

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

Error saving - Error Domain=NSCocoaErrorDomain Code=1570 "The operation couldn’t be completed. (Cocoa error 1570.)

EN

回答 1

Stack Overflow用户

发布于 2015-01-21 21:26:16

最后,这是我编辑vcard的方法

代码语言:javascript
复制
 -(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];


}

希望它能帮助你……

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21397543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档