если вы сообщите объекту c объекту removeObservers: для ключевого пути и того, что путь ключа не был зарегистрирован, он разбивает сады. как -
'Невозможно удалить наблюдателя для ключевого пути "theKeyPath" из-за того, что он не зарегистрирован как наблюдатель.
есть способ определить, имеет ли объект зарегистрированный наблюдатель, поэтому я могу сделать это
if (object has observer){
remove observer
}
else{
go on my merry way
}