У меня есть многоконтекстное приложение для обработки основных данных, которое активно использует наблюдателей для поддержания пользовательского интерфейса в рабочем состоянии.Я сталкиваюсь с множеством проблем удаления, которые происходят, потому что наблюдаемый объект удален.Я хотел бы защитить своих наблюдателей с помощью 'if ([mo isDeleted]) return;':
Из документации NSManagedObject
Метод возвращает YES, если CoreДанные попросят постоянное хранилище удалить объект во время следующей операции сохранения.Он может вернуть NO в другое время, особенно после удаления объекта.Непосредственность, с которой он перестанет возвращать ДА, зависит от того, где находится объект в процессе удаления.
Итак, ужасный выбор дизайна в моей книге, но мне любопытно, как людиобойти это.Очевидно, мне нужно очистить наблюдаемые свойства перед удалением.Единственный «чистый» способ, которым я могу думать, это наблюдать за событиями NSManagedObjectContextWillChange и проверять, храню ли я какой-либо из удаленных объектов.Похоже на чистую работу, но, может быть, я что-то упустил.