2013-09-29 3 views
1

Я звонюCGImageCreateWithImageInRect утечка памяти в АРК

CGImageRef tmp = CGImageCreateWithImageInRect([self.originalImage CGImage], newSize); 

тонна времени и приложение, в конечном счете сбой, но я не сохранить ссылку на изображение. Не следует ли собирать мусор?

Ошибка является EXC_BAD_ACCESS

+1

'CGImageCreateWithImageInRect' использует прямоугольник в качестве второго парам, почему вы передаете' newSize' к нему? Кажется, это размер. – Kjuly

ответ

3

Даже в АРК, эта функция не убирать за собой.

После вызова его, используйте:

CGImageRelease(tmp); 
tmp = NULL; 
+3

На самом деле ничего в «CoreFoundation» (включая «CoreGraphics» и т. Д.) Автоматически ссылается на ARC. Немного nitpicking: это должно быть 'tmp = NULL;' not 'tmp = nil;'. 'nil' для указателей Objective C. –

+3

И не освобождение памяти плохо, но не вызовет проблемы с 'EXC_BAD_ACCESS'. –

+1

Будет, если у меня закончится память :) – pfrank