Используйте инструменты для проверки на утечки и потерю памяти из-за оставшейся, но не утечки памяти.Последний является неиспользованной памятью, на которую все еще указывают.Используйте Heapshot в инструменте Allocations на инструментах.
Чтобы узнать, как использовать Heapshot для поиска разрыва памяти, см .: bbum blog
По сути, существует метод запуска инструмента выделения инструментовсделайте снимок кучи, запустите интуицию вашего кода и повторите повторение снимка кучи 3 или 4 раза.Это будет указывать на память, которая выделена и не освобождена во время итераций.
Чтобы выяснить результаты, откройте для просмотра отдельные распределения.
Если вам нужно увидеть, где происходят сохранения, релизы и авто-релизыдля объекта используйте инструменты:
Запустите инструменты, в Allocations включите «Record reference counts on» (вы должны остановить запись, чтобы установить опцию).Заставьте сборщик запустить, остановить запись, найти там ivar (datePickerView), выполнить детализацию, и вы сможете увидеть, где произошли все сохранения, выпуски и автоматические выпуски.
![](https://i.stack.imgur.com/Lb2tq.png)