0

我从 XMPPFramework for iOS 下载了 SampleProject 并将其连接到我的 Jabber 服务器。一切还好。

但即使我已断开连接(连接丢失),我也想让我的好友留在好友概览中。那可能吗?据我了解,XMPPCoreStorage 将它们保存在 CoreData 中。为什么在断开连接时会被清理?是否可以在断开连接时禁用清洁?我很不幸地没有找到方法。

如果它不是持久的,那真的会很烦人并且流量很大吗?

任何帮助都会很棒!

4

1 回答 1

3

所以我想出了一个解决方案:

在 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 内容..

于 2013-08-12T14:36:54.637 回答