в методе -init моего подкласса NSObject экземпляр добавляет себя в качестве наблюдателя некоторых из своих собственных keyPath, чтобы инициировать действие, которое должно произойти каждый раз при изменении одного из рассматриваемых свойств. Например,
[self addObserver:self forKeyPath:@"aProperty" options:0 context:nil];
[self addObserver:self forKeyPath:@"anotherProperty" options:0 context:nil];
...
Мой вопрос: в методе класса -dealloc мне обязательно нужно удалить экземпляр как наблюдатель самого себя? например
[self removeObserver:self forKeyPath:@"aProperty"];
[self removeObserver:self forKeyPath:@"anotherProperty"];
...
Как я понимаю, когда объект пытается отправить сообщение объекту, который давно не существует, возникает исключение, что явно является проблемой. Но в этом случае объект, который больше не существует, не может отправлять сообщения самому себе, так что это не должно быть проблемой.
У меня еще не было никаких проблем с этим, но он все равно вроде Меня беспокоит, так как я никогда не видел, чтобы в нем явно говорилось, что вы можете это сделать.
Я просто пытаюсь избежать необходимости писать целую кучу
[self removeObserver:self forKeyPath ...]
в моем методе -dealloc.