Реальный вопрос в том, почему вы не знаете, соблюдаете ли вы это или нет.
Если вы делаете это в классе наблюдаемого объекта, остановитесь. Все, что наблюдает, ожидает, что продолжит наблюдать это. Если вы отключите уведомления наблюдателя без его ведома, ожидайте, что что-то сломается; более конкретно, ожидайте, что состояние наблюдателя устареет, поскольку оно не получает обновлений от ранее наблюдавшегося объекта.
Если вы делаете это в классе объекта наблюдения, просто запомните, какие объекты вы наблюдаете (или, если вы когда-либо наблюдаете только один объект, наблюдаете ли вы его). Это предполагает, что наблюдение является динамическим и находится между двумя иначе не связанными объектами; если наблюдатель владеет наблюдаемым, просто добавьте наблюдателя после того, как вы создадите или сохраните наблюдаемое, и удалите наблюдателя, прежде чем выпускать наблюдаемое.
Добавление и удаление объекта в качестве наблюдателя обычно должно происходить в классе наблюдателя, а не в классе наблюдаемого объекта.
addObserver:
вviewWillAppear:
и , соответственно ,removeObserver:
вviewWillDisappear:
, звонки были состыкованы. Я должен сделать быстрое исправление, поэтому я собираюсь реализовать решение try-catch и оставить комментарий для дальнейшего изучения причины.