xmppframework: iPhoneXMPP: RootController 没有更新朋友的存在

Posted

技术标签:

【中文标题】xmppframework: iPhoneXMPP: RootController 没有更新朋友的存在【英文标题】:xmppframework: iPhoneXMPP: RootController not updated with friend's presence 【发布时间】:2013-02-19 11:29:55 【问题描述】:

我尝试了 iPhoneXMPP 演示,但是当我的朋友在线或离线时,GUI 似乎没有更新。我修改了 nsfetchresultcontroller 只显示在线朋友:

...
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"sectionNum == 0"]];
...

在 xcode 的控制台中,它显示它确实收到了我朋友的存在。但我看到 controllerDidChangeContent: 根本没有被调用。 (实际上,我看到它有时被调用,但随机且很少)。

当我更深入地调试时,我看到 XMPPRosterCoreDataStorage handlePresence:xmppStream 被调用,然后 managedObjectContextDidSave:notification 也被调用。所以一切似乎都是正确的。但是 resultfetchcontroller 并没有看到变化。

那么问题是什么?是不是我做错了什么? 谢谢。

【问题讨论】:

请提供fetchedResultsController方法的代码。 【参考方案1】:

我刚刚测试了您的谓词:它工作得很好。

您是否正确初始化了 NSFetchedResultsController?您需要传递 XMPPRosterCoreDataStorage 的 NSManagedObjectContext。

【讨论】:

是的,目前,我正在使用 [appDelegate managedObjectContext_roster] 来初始化 fetch 控制器。

以上是关于xmppframework: iPhoneXMPP: RootController 没有更新朋友的存在的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iPhone 应用中实现谷歌聊天

使用 gmail 服务器使用 XMPP 协议的聊天应用程序

为啥 XMPPFramework 会阻塞?

XmppFramework 显示错误

XMPPFramework - 消息未发送

XMPPFramework - 存在不变