当我收到消息时,我将未读消息的用户名和计数写入CoreData。并借助此功能:
func unreadMessagesCountBadge(cell: onlineUserCell, forCount count: Int)
我将徽章添加到单元格中。
但问题是,我不知道如何将此徽章添加到确切的用户。当我收到消息时,我会在日志中得到这个消息:
data: {
count = 15;
username = "my_user@domain.com";
}
那么,我如何用它将我的徽章添加到确切的单元格?在我的手机上,我只有用户名和姓,而不是用户名。
当我尝试:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> onlineUserCell {
let cell:onlineUserCell = self.tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! onlineUserCell
unreadMessagesCountBadge(cell, forCount: badgeValue)
}
但它会向所有用户添加我的徽章,而不是确切的用户。无论如何解决它?
答案 0 :(得分:0)
将在tableview中填充的数组中的每个元素都应该包含user的一个标识符。在“cellForRow”中,您检查哪个用户是这个,并且您可以根据id从数据库中获取徽章。 / p>
答案 1 :(得分:0)
当您调用该方法时,如果当前正在填充的单元格与具有徽章的单元格相同,则根本不进行检查。因此它会在每个细胞上被调用。在cellForRowAtIndexPath
中,检查cell.userName是否等于数据电子邮件(无论您将其保存在模型中的哪个位置)。如果是,请致电func unreadMessagesCountBadge(cell: onlineUserCell, forCount count: Int)
。如果您要检查cellForRowAtIndexPath
中的电子邮件,则无论如何您都不需要此方法中的第一个参数。