Как освободить память, связанную с CGImageCreateWithImageInRect - PullRequest
3 голосов
/ 20 марта 2009

Я использую CGImageCreateWithImageInRect() для генерации небольшого изображения из среды фонового изображения, которое будет отображаться при каждом вызове потока (0,01 сек). Как только я начинаю показывать часть изображения через CGImageCreateWithImageInRect, приложение начинает потреблять память с очень высокой скоростью и вылетает через несколько секунд. Используемая память уходит на 20+ МБ и вылетает Обычное приложение будет работать на 2 МБ.

Image1 = CGImageCreateWithImageInRect(imageRef, CGRectMake(x, y, w, h));

и после обработки делаю

CGImageRelease(Image1);

но это не помогает мне.

Я хочу знать, как освободить память, связанную с CGImageCreateWithImageInRect.

Ответы [ 2 ]

4 голосов
/ 28 апреля 2009

Ответ на ваш вопрос на самом деле CGImageRelease; пара строк, которые вы извлекли из вашего кода, правильно сбалансированы. Вы, должно быть, протекаете где-то еще.

0 голосов
/ 25 января 2011

На самом деле эта пара линий не сбалансирована, поскольку CGImageCreateWithImageInRect () сохраняет исходное изображение. Это должно быть…

CGImageRef Image1 = CGImageCreateWithImageInRect(imageRef, CGRectMake(x, y, w, h));
CGImageRelease(imageRef);
...
CGImageRelease(Image1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...