• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - XMPPFramework - 创建 vCard

[复制链接]
菜鸟教程小白 发表于 2022-12-12 18:17:31 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

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

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 *)vCardTempForJIDXMPPJID *)jid shouldFetchBOOL)shouldFetch

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

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

错误保存 - Error Domain=NSCocoaErrorDomain Code=1570 "操作无法完成。(Cocoa 错误 1570。)



Best Answer-推荐答案


这就是我完成 vcard 编辑的方式

 -(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];


}

希望对你有帮助....

关于ios - XMPPFramework - 创建 vCard,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21397543/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap