7

Я пытаюсь найти источник утечки памяти, как описано здесь:CG Raster Data - CGProviderCreateWithCopyOfData - не удается отпустить?

Unable to Release Quartz 2D and Core Text created Images

Когда я использую инструменты я могу видеть, что есть нечто, называемое CG растровых данных постоянно растет в размерах, которые никогда не освобождается.

Кто-нибудь знает, что может быть причиной этого и как исправить? Похоже, что это может быть какое-то кэширование изображений, но возможно ли это очистить от кода?

+0

Сохраняется ли освобождение памяти, если вы закрываете этот экран? Если это так, вам нужно добавить @autoreleasepool код, который использует изображения (это может быть цикл). –

+0

Можете ли вы прикрепить свой код? –

ответ

0

У меня была такая же проблема с увеличением памяти CG Raster Data, просто нажимая и выталкивая контроллер вида. Я потратил некоторое время, думая, что это проблема с некоторым кодом рисования. Я, наконец, отследил его до делегата, который слабо ссылался на контроллер вида, который был нажат и выскочил, поэтому, когда я вытащил контроллер вида, он не был освобожден. CG Raster Data оказалась самой большой частью контроля над этим контроллером представления, поэтому я ошибочно приписал проблему этому, потому что на самом деле это был сам контроллер представления, который не был выпущен (поэтому, не выпуская его взглядов, некоторые из который имел CG Raster Data).

Вкратце: если вы видите утечки памяти с помощью CG Raster Data, посмотрите на контроллеры представлений, которые могут иметь вид с ними, и убедитесь, что они освобождены.