Шаг 1. Использование отладчика.
Выполнить -> Отладчик или Shift-Command-Y. Когда ваша программа сталкивается с ошибкой, подобной приведенной выше, вы можете увидеть, где в коде она была остановлена. Вы можете увидеть инструкции Apple по использованию отладчика для деталей, но основные вещи довольно легко понять. Наиболее важной частью является панель списка потоков в верхнем левом квадранте отладчика. Это позволит вам перемещаться вверх и вниз по стеку, чтобы увидеть, где в вашем коде произошла ошибка. Обычно вы можете использовать это, чтобы определить, какой из ваших объектов был объявлен неизменным и не изменяемым.
Шаг 2. Используйте инструменты.
Инструменты мощные и позволят вам сделать некоторые довольно изящные вещи. В этой ситуации, как только вы узнаете адрес памяти, если ваш случайно неизменный объект, вы можете использовать Инструменты, чтобы увидеть историю этого объекта и, надеюсь, отследить его до его происхождения. Чтобы использовать инструменты для отслеживания объекта, вам нужно запустить инструменты с распределением объектов («Выполнить» -> «Выполнить с помощью Performance Tool» -> «Распределение объектов»). Если вам известен адрес загрязненного объекта, вы можете найти его в правом нижнем углу инструментов, в поле поиска. Откройте расширенное представление сведений (Command-E), чтобы увидеть, где находился этот объект.