2016-04-19 2 views
1

Я использовал Quickblox для iOS какое-то время сейчас. Пока все работает нормально. Есть только одна проблема, с которой я сталкиваюсь, т. Е. При отправке быстрых/быстрых сообщений, таких как 4,5 сообщения за секунду, тогда сортировка становится проблемой, так как date_sent/dateSent становится одинаковым для всех сообщений. Даже в пользовательских атрибутах QBChatMessages, date_sent, который находится в целочисленном выражении, показывает одинаковое число для всех 4,5 сообщений при отправке с той же секунды.Quickblox сообщение sort on date_sent/dateSent

Может ли кто-нибудь указать мне, как сортировать сообщения? Хотя в то время как chatdidReceivemessage получает сообщение в отсортированном порядке, я могу сохранить сообщения в NSArray, так как это сохранить заказ. Но как только я попытаюсь сохранить в Coredata и вернуть обратно на основе date_sent/dateSent, заказ не сохраняется.

+0

@Igor Khomenko Не могли бы вы помочь нам решить проблему? –

ответ

0

Да, Quickblox хранит дату, отправленную из сообщений как целое значение. Но есть решение для вас. Вы должны сортировать сообщения не только по дате, но и по полю ID. Строка идентификатора содержит такие вещи, как дата отправления, уникальный идентификатор машины и т. Д. Вы можете увидеть более подробную информацию о том, как работает mongoDBID here.

Ниже приведен пример кода для вас (от QMServices проекта):

NSMutableOrderedSet *datasource = [self dataSourceWithDialogID:dialogID]; 

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

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

Короче говоря, для того, чтобы сортировать сообщения с одинаковым значением dateSent, сравнить их с помощью своей идентификационной строки.

+0

Спасибо :). Это здорово! Я отмечаю это как принятый ответ. Но можете ли вы объяснить, по какой причине не было ни одной миллисекундной метки времени в самом сообщении. Что может быть причиной ? –

+0

Это особенности архитектуры сервера Quickblox. –

 Смежные вопросы

  • Нет связанных вопросов^_^