Во-первых, не путайте сущности и объекты.Сущности - это абстракции, родственные классам, и они никогда не добавляются и не удаляются из контекста управляемого объекта.Это управляемые объекты, которые добавляются или удаляются из контекста управляемого объекта.Каждый управляемый объект связан с сущностью в модели данных точно так же, как любой другой экземпляр объекта связан с конкретным классом.
Итак, что вы действительно хотите - это получать уведомления, когда управляемый объект, связанный с определенной сущностью, вставляется / обновляется / удаляется.
Самый простой способ справиться с этим - это зарегистрироваться для контекста.:
NSManagedObjectContextObjectsDidChangeNotification
… который будет предоставлять уведомление всякий раз, когда управляемый объект в контексте вставляется / обновляется / удаляется.Чтобы найти только управляемые объекты, связанные с определенной сущностью, проверьте объекты, возвращенные ключами NSInsertedObjectsKey, NSUpdatedObjectsKey и NSDeletedObjectsKey, а затем проверьте свойство entity
каждого объекта.
В качестве альтернативы вы используете пользовательский подкласс NSManagedObject и переопределяете awakeFromInsert
для выдачи уведомления при первой вставке объекта.
Я бы отметил, что такая функциональность нужна редко.Когда вы обнаруживаете, что подключаете много уведомлений, это обычно , что указывает на необходимость доработки вашей модели данных для сбора дополнительной информации.Обычно вам нужны уведомления, потому что некоторая ключевая логика модели данных не закодирована в Базовых данных, а находится во внешнем объекте, который нуждается в уведомлении.