У меня есть объект - Config
. Я хочу знать, изменился ли атрибут Account
на Config
. Когда это произойдет, я хочу отправить NSNotification
, чтобы все коды, которые волнуют, когда изменения Account
будут знать. Моя первоначальная мысль была в моем подклассе NSManagedObject
, что я бы переопределил метод setAccount
, чтобы установить переходный атрибут AccountDidChange
на true
. Затем в didSave
, если AccountDidChange
был true
Я бы отправил уведомление, а затем установил его обратно на false
. Есть ли способ лучше? Моя проблема заключается в том, что из того, что я прочитал, изменив AccountDidChange
на false
, я бы загрязнил свой объект и вам нужно снова сохранить его.Основные данные NSManagedObject - отслеживание, если атрибут был изменен
Немного больше информации: Объект Config
- это текущая конфигурация приложения. Account
действительно может быть изменен на ActiveAccount
. Существует отношение к объекту Account
, который имеет список всех Аккаунтов. Идея состоит в том, что пользователь может изменить активную учетную запись приложения. Таким образом, у нас есть набор серверов, и пользователь может быть зарегистрирован только по одному. Config.Account
указывает на эту активную учетную запись и используется для установки соединений с сервером для получения информации. Я использую это уведомление о том, что Config.Account
изменил, чтобы сообщить другим объектам, чтобы очистить их информацию - как список предупреждений. В принципе, вся информация предназначена для одной учетной записи, поэтому ее необходимо удалить, а затем повторить на следующей загрузке с новой активной учетной записью.
Кроме того, данные имена не являются моими фактическими именами объектов - просто попытка упростить процесс.
Если я это правильно понимаю, тогда будет наблюдаться функцияValueForKeyPath ... при изменении учетной записи - не только при ее сохранении. Наверное, я должен был быть более конкретным, что я хочу знать, когда он фактически сохранен в магазине. Кроме того, возможно, у меня есть вторая проблема, которая не совсем понимает, когда/как сохранять изменения. Несмотря на то, что я изменяю значение учетной записи своего Config, она не изменяется до тех пор, пока она не будет сохранена. Возможно, изменение и сохранение должны произойти во втором контексте, а затем быть объединены в основной контекст приложения. Это все еще для меня ново, но спасибо. – Brian
Я добавил дополнительную информацию - спасибо вам за помощь. – Brian
Я до сих пор не понимаю, почему вы хотите получать уведомления только об этом, а не при изменении активной учетной записи. Однако, поскольку в приложении, по-видимому, есть только один объект Config, достаточно легко отслеживать изменения в нем в вашем контроллере приложений (или когда это когда-либо имеет наибольшее значение) и отправлять уведомление в NSManagedObjectContextDidSaveNotification объекта управляемого объекта, если активная учетная запись с момента последнего сохранения. –