質問

iOSにXMPPFrameworkを使用しています。

私の問題は、部屋に参加してから残して、もう一度参加することです。その部屋からのメッセージ、またはその部屋内のプライベートメッセージが2回2回メッセージを受け取ることです。 。

私は複数の代表者を登録して削除しないかもしれないと言われていますが、それをやっているなら、私は誤ってそれをやっていて、これがどこで起こっているのか本当にわかりません。誰かがこれがどこで起こっているのかを見つけるのを手伝うことができますか?たぶん、例が私のコードでそれを見つけるのに役立つでしょう。

ありがとう。

役に立ちましたか?

解決

誰かが知りたいと思った場合に備えて。

部屋を離れる正しい方法は、この一連の機能を行うことです。

    [xmppRoom leaveRoom];
    [xmppRoom deactivate];
    [xmppRoom removeDelegate:self];

他のヒント

私は、リモートティメスタンプの価値に問題があることです。ファイルに回避策を追加することで問題を解決します:extensions/xep-0045/coredatastorage/xmpproomcoredatastorage.m

前:

- (BOOL)existsMessage:(XMPPMessage *)message forRoom:(XMPPRoom *)room stream:(XMPPStream    *)xmppStream
{
    NSDate *remoteTimestamp = [message delayedDeliveryDate];

    if (remoteTimestamp == nil)
    {   
    return NO;
    }

    NSManagedObjectContext *moc = [self managedObjectContext];
    ......
}

後:

 - (BOOL)existsMessage:(XMPPMessage *)message forRoom:(XMPPRoom *)room stream:(XMPPStream *)xmppStream
{
    NSDate *remoteTimestamp = [message delayedDeliveryDate];

    if (remoteTimestamp == nil)
    {   
             return NO;
    }

    remoteTimestamp = nil;
    NSManagedObjectContext *moc = [self managedObjectContext];
    ......
 }
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top