На первый взгляд, я не вижу ничего плохого в этом коде как таковом. Там нет ничего особенного WRT-блоков и условных предложений. Существуют специальные правила для переменных WRT, но, глядя на этот код, вы, вероятно, должны быть в порядке.
У вас, вероятно, есть объект, который был переиздан или что-то в этом роде. Я предлагаю внимательно рассмотреть self, zoomImageView и tempZoomImageView в качестве подозреваемых, поскольку они находятся в блоке if ... Попробуйте включить NSZombiesEnabled, чтобы получить исключение в тот момент, когда перезаписанный объект обменивается сообщениями.