Задача C: Как проверить непрочитанные сообщения (номер, который будет отображаться в виде значка) - PullRequest
0 голосов
/ 13 июля 2011

У меня есть tableView, хранящий список уведомлений (полученный с сервера). Как я могу проверить, просмотрено ли конкретное уведомление пользователем?

Я думал о

1) хранение идентификаторов уведомлений в NSUserdefaults и

2) проверить полученный список уведомлений по списку в NSUserdefault при запуске приложения,

3) если уведомление не существует в NSUserdefault, тогда уведомление == непрочитано и badgeValueCount ++.

Однако это кажется крайне неэффективным и не масштабируемым.

Может кто-нибудь посоветовать более эффективный способ проверки на непрочитанные предметы (и установить значок с количеством непрочитанных). Спасибо!

Ответы [ 2 ]

1 голос
/ 13 июля 2011

Это зависит от вашей системы. Например, если у пользователя может быть несколько клиентов, извлекающих уведомления, и вы хотите синхронизировать их, информация должна храниться на стороне сервера как часть пользовательских данных. Если это чисто клиентская проблема, а уведомления индексируются по времени, вы можете просто сохранить дату последнего запроса и спросить у сервера, сколько уведомлений новее этого. В противном случае список идентификаторов уведомлений имеет смысл (хотя я бы чувствовал себя странно, если вводить его в пользовательские настройки по умолчанию, просто из-за чувства аккуратности и нежелания увеличивать значения по умолчанию в приложении с течением времени).

1 голос
/ 13 июля 2011

Почему бы просто не сохранить ваши «уведомления» в каком-то массиве?Вы сможете узнать количество объектов в массиве, а также проверить, находится ли объект внутри массива.

...