我从适用于 iOS 的 XMPPFramework 下载了 SampleProject,并将其连接到我的 Jabber 服务器。一切正常。
但我想让我的好友留在好友概览中,即使我已断开连接(连接丢失)。那可能吗?据我了解,XMPPCoreStorage 将它们保存在 CoreData 中。为什么它会在断开连接时被清理?是否可以在断开连接时禁用清理?不幸的是我没有找到方法。
如果它不是持久性的,会真的很烦人并且流量很大吗?
任何帮助都会很棒!
最佳答案
于是我想出了一个解决办法:
在 XMPPRoster.m xmppStreamDidDisconnect 上:
我评论了 4 行。现在看起来像这样:
- (void)xmppStreamDidDisconnect:(XMPPStream *)sender withError:(NSError *)error
{
// This method is invoked on the moduleQueue.
XMPPLogTrace();
// [xmppRosterStorage clearAllUsersAndResourcesForXMPPStream:xmppStream];
//
// [self _setRequestedRoster:NO];
// [self _setHasRoster:NO];
//
// [earlyPresenceElements removeAllObjects];
}
因此它不会在断开连接时清除存储。在重新连接时,它将清理并用更新的信息重新填充存储。希望它能帮助其他人。它不是一个完美的解决方案。一个首选是构建您自己的 CoreData 模型并在其中获取 XMPP 内容..
关于ios - 为离线/断开连接保存花名册提议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18185007/