Я нашел ответ. У меня был класс модели, который использовал результат кода выше, но забыл освободить свойство в методе dealloc. Я должен был поймать это с помощью инструментов, но я не знал, где искать. Я попал в стек вызовов в расширенных деталях, в которых была только часть необходимой мне информации.
Для таких придурков, как я, вот что я сделал:
- Запустите приложение с помощью инструментов ... Утечки.
- В инструментах просмотрите вид утечек блоков (значок сетки внизу) и включите расширенные детали.
- Если у вас есть несколько пропущенных объектов, щелкните треугольник раскрытия, чтобы вы могли посмотреть на отдельный адрес.
- Рядом с адресом будет стрелка детали. Нажмите на него.
- Теперь вы будете смотреть на историю. Он начинается с Malloc и показывает вам, как каждый из них сохраняет и освобождает.
У вас должен быть релиз для malloc и релиз для каждого сохранения в истории. Совпадение ваших удержаний и выпусков и искать чудак. Если вы сомневаетесь, посмотрите вниз страницы и внимательно просмотрите все свойства, которые вы, возможно, забыли использовать в методах dealloc.