ios - XMPPFramework - 如果尚未创建 vCard,则不会更新昵称

标签 ios xmpp xmppframework

新用户注册 XMPP 时会出现问题。我无法在 vCard 上设置昵称,但是如果用户的 vCard 已经存在,则相同的代码可以正常工作。

dispatch_queue_t queue = dispatch_queue_create("queue", DISPATCH_QUEUE_PRIORITY_DEFAULT);
dispatch_async(queue, ^{

    XMPPvCardCoreDataStorage *xmppvCardStorage = [XMPPvCardCoreDataStorage sharedInstance];
    XMPPvCardTempModule *xmppvCardTempModule = [[XMPPvCardTempModule alloc] initWithvCardStorage:xmppvCardStorage];
    [xmppvCardTempModule  activate:[self xmppStream]];

    XMPPvCardTemp *myVcardTemp = [xmppvCardTempModule myvCardTemp];

    if (myVcardTemp == nil) {
       // I am stuck here, unable to create empty VCard for new User
    }
    else {
        [myVcardTemp setNickname:@"iphone"];
        [xmppvCardTempModule updateMyvCardTemp:myVcardTemp];
    }

});

对于第一次在 xmpp 中创建 vcard 有什么线索吗?

最佳答案

XMPPvCardTemp *myvCardTemp = [xmppvCardTempModule myvCardTemp];
if (!myvCardTemp) 
{
    NSXMLElement *vCardXML = [NSXMLElement elementWithName:@"vCard" xmlns:@"vcard-temp"];
    XMPPvCardTemp *newvCardTemp = [XMPPvCardTemp vCardTempFromElement:vCardXML];
    [newvCardTemp setNickname:@"nick"];
    [xmppvCardTempModule updateMyvCardTemp:newvCardTemp];
}
else
{
    //Set Values as normal
}

关于ios - XMPPFramework - 如果尚未创建 vCard,则不会更新昵称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18892345/

相关文章:

ios - 如何在swift 3.0 中为uitableviewcontroller 设置top layout guide 和bottom layout guide?

iPhone iOS 是否有开源带注释的折线图示例?

node.js - 使用 node-xmpp ( node.js ) 注册新的 xmpp 帐户

java - 无法将简单的 Java Smack 示例连接到 Google Talk

ios - 在 ios 模拟器上运行时,当 imagePicker 的源是相机时应用程序崩溃?

ios - 通过 iPhone 中的 SLComposeViewController 集成 Twitter

ios - 如何在 objective-c 中通过ios中的XMPPFramework连接XMPP服务器

swift - XMPPFramework (Swift) 问题

ios - 由于未捕获的异常 'FirebaseShutdown' 而终止应用程序,原因 : 'Firebase error

php - XMPP 流发送,不接收。为什么 XMPP 流会断开连接?