来自xmpp ios的未读消息数

时间:2015-03-07 11:51:05

标签: objective-c messages xmppframework ios8.1

我正在使用XMPPFrameWork开发聊天应用。一切正常  完美但我仍然坚持获取大量未读消息。我要表现出来  tableView尚未打开的邮件数。我该怎么办?  , 任何的想法?我试图展示mostRecentMessage,但它没有用。  任何帮助将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:0)

有一个名为" unreadMessages"的属性在" XMPPUserCoreDataStorageObject"在XMPP中。通过FROM" 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中使用上面的代码来检索未读的消息计数。