NSManagedObject и isDeleted - PullRequest
       2

NSManagedObject и isDeleted

2 голосов
/ 20 января 2011

У меня есть многоконтекстное приложение для обработки основных данных, которое активно использует наблюдателей для поддержания пользовательского интерфейса в рабочем состоянии.Я сталкиваюсь с множеством проблем удаления, которые происходят, потому что наблюдаемый объект удален.Я хотел бы защитить своих наблюдателей с помощью 'if ([mo isDeleted]) return;':

Из документации NSManagedObject

Метод возвращает YES, если CoreДанные попросят постоянное хранилище удалить объект во время следующей операции сохранения.Он может вернуть NO в другое время, особенно после удаления объекта.Непосредственность, с которой он перестанет возвращать ДА, зависит от того, где находится объект в процессе удаления.

Итак, ужасный выбор дизайна в моей книге, но мне любопытно, как людиобойти это.Очевидно, мне нужно очистить наблюдаемые свойства перед удалением.Единственный «чистый» способ, которым я могу думать, это наблюдать за событиями NSManagedObjectContextWillChange и проверять, храню ли я какой-либо из удаленных объектов.Похоже на чистую работу, но, может быть, я что-то упустил.

1 Ответ

12 голосов
/ 20 января 2011

Другая альтернатива, которая может работать или не работать с вашим дизайном: -[NSManagedObject managedObjectContext] вернет nil, если он был удален и контекст был сохранен.Вы можете проверить это после NSManagedObjectContextDidSave уведомления.

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