Другая причина, по которой у вас может быть потеря памяти на нижних уровнях API, заключается в том, что вы не удаляете все свои представления из иерархии представлений (иначе: не вызывайте [view removeFromSuperview] везде). По крайней мере, это то, что, казалось, случилось со мной.
Обратите внимание, что в большинстве случаев это не требуется, так как вы просто освобождаете основной вид и все его подпредставления, а затем перестраиваете его из контроллера представления при необходимости. Ситуация начинает усложняться, когда вы не освобождаете всю иерархию, а просто удаляете некоторые из них из иерархии.
В этом случае я пришел к выводу, что у вас могут быть буферы или слои, все еще кэшированные в более низких частях API, и в этом случае ваш инструмент Allocation вам не поможет.
Для правильного мониторинга вам необходимо использовать «Монитор памяти» (в системе). Вы увидите, что линия «Physical Memory Free», сбрасываемая близко к 0, является наиболее надежным индикатором того, что будет выдано предупреждение Memory.
Еще одним преимуществом использования этого инструмента является то, что вы можете подключить его к работающему процессу, что позволяет легко работать с консольным выходом и инструментом.