0

XMPPFramework for iOS から SampleProject をダウンロードし、すでに Jabber サーバーに接続しています。すべて大丈夫です。

しかし、接続が切断された (接続が失われた) 場合でも、Buddys の概要に My Buddys を残しておきたいと思います。それは可能ですか?私が理解したように、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 に答える