Количество непрочитанных сообщений от xmpp ios
Я разрабатываю приложение чата, используя XMPPFrameWork
, Все работает отлично, но я застрял в получении количества непрочитанных сообщений. Я должен показать на tableView
количество сообщений, которые еще не открыты. Как мне поступить, любая идея? Я пытался показать mostRecentMessage
но это не сработало. Любая помощь будет оценена. Спасибо.
1 ответ
В XMPP есть атрибут с именем "unreadMessages" в "XMPPUserCoreDataStorageObject". Передайте ОТ "jid", чтобы получить соответствующий объект пользователя, и увеличьте значение "unreadMessages" в методе ниже в Appdelegate,
- (void)xmppStream:(XMPPStream *)sender didReceiveMessage:(XMPPMessage *)message
и обновите его в том же БД еще раз.
XMPPUserCoreDataStorageObject *user = [self.xmppRosterStorage userForJID:[XMPPJID jidWithString:[NSString stringWithFormat:@"%@", [[[message fromStr] componentsSeparatedByString:@"/"]objectAtIndex:0] ]]
xmppStream:self.xmppStream
managedObjectContext:[self managedObjectContext_roster]];
NSNumber *number = user.unreadMessages;
int value = [number intValue];
number = [NSNumber numberWithInt:value + 1];
user.unreadMessages = number;
Затем используйте приведенный выше код в любом viewcontroller, чтобы получить количество непрочитанных сообщений.