Не уверен на 100%, но, вероятно, это связано с использованием «удобного конструктора», в частности, с классом NSData. Когда вы вызываете «dataWithContentsOfURL», вы получаете объект NSData, который автоматически высвобождается автоматически. Однако ваш текущий NSAutoreleasePool может не входить в область действия, которая приведет к освобождению этой памяти до выхода из приложения. Вы можете попробовать вернуться к вызову alloc / init, который вы закомментировали, и попытаться вручную освободить каждый объект NSData внутри цикла, чтобы гарантировать освобождение памяти NSData для каждого экземпляра NSData, созданного в цикле (после сохранения от NSData к файлу).