我正在使用XMPPFrameWork开发聊天应用程序。一切正常
很好,但我被困在获取未读消息的数量。我得穿上
tableView尚未打开的邮件数。我该怎么办?
,知道吗?我试图显示mostRecentMessage,但没有成功。
任何帮助都将不胜感激。谢谢。

最佳答案

xmpp的“xmppusercoredatastorageobject”中有一个名为“unreadMessages”的属性。传递from“jid”以获取相应的用户对象,并在appdelegate的下面方法中增加“unreadMessages”值,

 - (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;

然后在任何VIEW控制器中使用上面的代码来检索未读的消息计数。

10-05 22:57