目标C:如何检查未读消息(号码显示为徽章)



我有一个tableView存储通知列表(从服务器检索)。如何检查特定通知是否已被用户查看?

我在想

1)在NSUserdefaults和

中存储通知id

2)在应用程序启动时根据NSUserdefault中的列表检查检索到的通知列表,

3)如果通知在NSUserdefault中不存在,则notification == unread和badgevaluecount++。

然而,这似乎效率很低,不可扩展。

谁能建议一种更有效的方法来检查未读条目(并设置未读计数的徽章)?谢谢!

这很大程度上取决于您的系统。例如,如果用户可能有多个获取通知的客户端,并且您希望它们之间实现同步,则必须将信息作为用户数据的一部分存储在服务器端。如果这纯粹是客户端问题,并且通知是按时间索引的,那么您可以只存储最后一次提取日期,并询问服务器有多少通知更新。如果做不到这些,那么通知id列表就有意义了(虽然我觉得把它放在用户默认值中很奇怪,只是出于整洁的感觉,不想随着时间的推移而膨胀应用程序的默认值)。

为什么不简单地将你的'通知'存储在一些数组中?您将能够获得数组中对象的计数,并且还可以检查对象是否在数组内。

最新更新