Я обнаружил, что проблема не имеет ничего общего с моим кодом. Каждый раз, когда я использую кварц на iPhone, у меня возникает такая проблема.
Кварц имеет серьезную проблему, которая должна быть исправлена. Насколько я обнаружил, он получает куски памяти для выполнения рисования и не освобождает их, даже если вы освобождаете все переменные и ссылки, которые вы используете. Даже если вы положите все переменные ноль.
Кварц - пожиратель памяти и источник сбоев.
Вот проект, который я создал, чтобы продемонстрировать, как Quartz может разбить ваш проект. Ищите метод внутри MyClass.m, называемый imageWithBorderFromImage. Этот метод использует кварц, чтобы нарисовать пунктирную границу вокруг объекта. Запустите проект и нажмите несколько раз на кнопку. Каждый раз, когда вы нажимаете, новый объект добавляется на экран поверх предыдущего. Примерно после 20 кликов приложение выбрасывается с трамплина. Перед этим вы увидите предупреждение LOW MEMORY на консоли.
Прежде чем сказать мне, что проблема в том, что создано слишком много представлений, отключите кварцевый метод и убедитесь, что приложение больше не падает. Фактически я смог нажать 80 раз и все еще мог продолжать нажимать, но я остановил приложение.
Скачать проект QuartzNightmare можно здесь