iOS (iPad) CoreGraphics & Foundation проблемы с памятью - PullRequest
4 голосов
/ 17 августа 2011

Я получаю странное распределение памяти из основных библиотек iOS, которое видно из Распределения инструментов (Malloc 1.00KB), которое постоянно растет и приводит к падению приложения (iPad).

Приложение позволяет пользователю просматриватьстатьи (тело в веб-представлении, заголовок / автор / дата в метках) - проблема, возникающая при загрузке каждого нового контроллера представления (предыдущие контроллеры представления освобождаются / освобождаются - это не проблема).

СледующееВыделение CoreGraphics происходит только в том случае, если для UILabel установлено свойство .text: CoreGraphics " CGGLyphBitmapCreate ", " CGFontSetStrikeValue " - иногда один или оба из них отображаются 6 или 7 раз (по 1 КБ каждый).) но, по крайней мере, один из каждого просмотра каждый раз.

В дополнение к этому иногда появляется Foundation " [NSNotificationCenter addObserver: selector: name: object:] ", иногда нет, иногдадо 6/7 раз на одной загрузке.Я понимаю, почему при добавлении наблюдений это может выделить некоторое количество памяти, но, безусловно, освобождает контроллер представления с помощью " [NSNotificationCenter removeObserver: self] должно снова удалить все ссылки.

Я включил снимки экрана из Инструментов... даже не обращается к выделениям WebCore и libcache.dylib, которые ** иногда отображаются при загрузке. Здесь тоже очень запутанно.

Instruments Screenshot 1 Instruments Screenshot 2

Ответы [ 2 ]

0 голосов
/ 06 февраля 2013

Может быть, у вас есть поток без настроенного пула автоматического выпуска? Если это так, и создается объект автоматического выпуска, например, с помощью метода get, объект не может быть сохранен пулом автоматического выпуска, так как он не существует, и он утечет.
Так что если ваше приложение является многопоточным, убедитесь, что каждый поток имеет блок @autoreleasepool{}, который покрывает большую часть кода потока.

0 голосов
/ 17 августа 2011

Вы отслеживали утечки?Пока это не утечка памяти, вам обычно не о чем беспокоиться.

...