пятница, 21 марта 2014 г.

Отчего приложение падает внутри блоков

Не используйте мемберы текущего объекта внутри блоков, выполнение которых происходит позже чем окружающий код. Например, выполнение блока может происходить только после того, как какие-то данные успешно скачались (через несколько долгих секунд). К моменту выполнения кода внутри блока объект self уже может оказаться удалённым из памяти приложения (то есть для него уже случился вызов dealloc метода). Если внутри блока вы обращаетесь к мемберу уже удалённого объекта, то приложение в таком случае упадёт. Вместо использования мемберов объекта заранее копируйте данные из них в локальные переменные, объявленные перед использованием блока.

Постоянные читатели