Хранение указателей в основных данных - PullRequest
0 голосов
/ 07 ноября 2011

Я храню некоторые объекты в основных данных, которые имеют свой срок жизни. Я планировал локальные уведомления о создании объекта на этот срок службы, а затем обработка объекта пошла на уведомление.

Проблема в том, что объекты могут закончиться рано. Но местные уведомления не знают об этом и все еще срабатывают в свое время, что приводит к путанице. Есть ли способ сохранить указатель на уведомление в объекте? Так что, если он заканчивается рано, он может просто отменить его.

Я хотел бы придерживаться уведомлений, так как мне нужно, чтобы пользователь знал, когда он закончится, если он заканчивается нормально. И уведомления не зависят от запущенного приложения.

Основной вопрос: можете ли вы хранить указатели на объекты в основных данных. Второй вопрос: если локальные уведомления меняют адреса памяти в течение срока их службы

Я знаю, что могу просто отменить их все и перенести необходимые, если они заканчиваются рано, но это кажется расточительным и, надеюсь, есть лучший способ.

Ответы [ 2 ]

4 голосов
/ 08 ноября 2011

UILocalNotification не сериализуем (он не реализует NSCoding), поэтому вы не можете хранить его постоянно с Core Data.Я предлагаю вам добавить управляемый идентификатор объекта Core Data в сериализуемом виде (например, в виде URL) в свойство уведомлений userInfo.Если вам нужно удалить определенное уведомление, вы ищете в локальном уведомлении UIApplication s 'scheduledLocalNotifications локальное уведомление с соответствующим идентификатором управляемого объекта в его свойстве userInfo, а затем отменяете его с помощью cancelLocalNotification:.

0 голосов
/ 10 декабря 2011

Heads up - я просматривал эту тему и вижу противоречивую информацию с ответом @MrMage:

  1. UILocalNotification соответствует NSCoding для документа Apple
  2. Вот ответ на stackoverflow, который описывает, как хранить локальное уведомление в nsdata, которое должно позволить вам хранить локальное уведомление как свойство объекта: Удалить конкретное локальное уведомление

Хотя не эксперт по этой теме, поэтому любые отзывы были бы хорошими.

...