2016-04-19 17 views
1

Ich habe Quickblox für iOS für eine Weile jetzt verwendet. Bis jetzt scheint alles in Ordnung zu sein. Es gibt nur ein Problem, dem ich gegenüberstehe, d. H. Beim Senden von schnellen/schnellen Nachrichten wie 4,5 Nachrichten in einer Sekunde wird die Sortierung ein Problem, da date_sent/dateSent für alle Nachrichten gleich wird. Selbst in den benutzerdefinierten Attributen QBChatMessages zeigt date_sent, das in Integer ist, die gleiche Zahl für alle 4,5 Nachrichten, wenn sie in derselben Sekunde gesendet werden.QuickBlox Nachricht sortieren nach Datum_Empfang/Datum

Kann mir bitte jemand sagen, wie man die Nachrichten sortiert? Obwohl während chatdidReceivermessage die Nachricht in sortierter Reihenfolge empfängt, kann ich die Nachrichten in NSArray speichern, da es die Reihenfolge zu bewahren ist. Aber sobald ich versuche, in Coredata zu speichern und basierend auf date_sent/dateSent zurück zu holen, wird die Reihenfolge nicht beibehalten.

+0

@Igor Khomenko Können Sie bitte in dieser Angelegenheit helfen? –

Antwort

0

Ja, Quickblox speichern Datum gesendet von Nachrichten als Integer-Wert in der Tat. Aber es gibt eine Lösung für Sie. Sie sollten Nachrichten nicht nur nach dem gesendeten Datum, sondern auch nach dem ID-Feld sortieren. Die ID-Zeichenfolge enthält beispielsweise das Datum des Versands, eine eindeutige Gerätekennung usw. Sie können detailliertere Informationen zur Funktionsweise von mongoDBID sehen here. Hier

ist ein Beispiel-Code-Snippet für Sie (von QMServices Projekt):

NSMutableOrderedSet *datasource = [self dataSourceWithDialogID:dialogID]; 

NSSortDescriptor *dateSentDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"dateSent" ascending:YES]; 
NSSortDescriptor *idDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"ID" ascending:YES]; 

[datasource sortUsingDescriptors:@[dateSentDescriptor, idDescriptor]]; 

Lange Rede kurzer Sinn, um Nachrichten mit gleichen dateSent Wert zu sortieren, vergleichen sie durch seine ID-String.

+0

Danke :). Es hat super funktioniert! Ich markiere es als eine akzeptierte Antwort. Aber können Sie erklären, aus welchem ​​Grund nicht jede Millisekunde Zeitstempel in der Nachricht selbst war. Was könnte der Grund sein? –

+0

Dies sind Funktionen der Quickblox Server-Architektur. –