Как пользоваться NSZombieEnabled

На последних этапах тестирования моего приложения, я обнаружил, что у меня посылается сообщение уже освобожденному из памяти объекту и приложение крешается. Подсказка в окне консоли гласила, что сообщение было [UIImage retain], но у меня на довольно много картинок, и к какому из них конкретно, было не понятно. С использованием NSZombieEnabled все разрешилось за 5 минут. Итак, как это делается:

1. Не забываем, что NSZombieEnabled — это переменная среды. Поэтому писать ее надо не в свойства проекта, а в свойства вашего Executables. Идем в раздел Executables вашего проекта в XCode, находим ваше приложение, по нему двойной щелчок и в «Variables to be set in the envionment» вставляем новую переменную NSZombieEnabled — присваиваем ей значение YES. И не забываем поставить галочку активности этой переменной.

2. Заходим в Debugger и находим список ваших breakpoints. Нам нужно добавить новую контрольную точку. Добавляем ее, например, кликая два раза на “Double-Click for Symbol”. Добавляем дословно вот такую точку: -[_NSZombie methodSignatureForSelector:]

3. Запускаем приложение и пытаемся вызвать ту самую ошибку. В какой-то момент, она возникает и Debugger открывается, показывая стек вызовов, по которому вы можете уже точнее увидеть, где же проблемный вызов. Передвигаясь по стеку, вы даже можете найти совершенно точно ту строчку, которая вызывает сбой.

Перед выпуском приложения обязательно отключите эту переменную, иначе ваше приложение будет вызывать большую утечку памяти (memory leaks).

Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s