ios - 为离线/断开连接保存花名册提议

标签 ios objective-c core-data xmpp xmppframework

我从适用于 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/

相关文章:

ios - 基础和 cocoa 框架之间的关系

ios - 核心数据模型设计 - 更改 "Live"对象也会更改保存的对象

iphone - 日期在过去 24 小时内的 NSFetchRequest 谓词?

ios - 以编程方式创建的按钮缺少圆角

ios - objective-c 线程 1 信号 SIGSTOP 应用程序崩溃

ios - 为什么 CocoaPod 将所有框架复制到最终的 iOS 应用程序产品中?

iphone - 如何确定 UITableView 何时完成加载所有行?

ios - 来自 iOS 客户端的 Django 身份验证

iphone - 来自 NSString 中保存的字节的 UIImage

Swift 核心数据变量问题