2015-04-22 3 views
0

меня плохая ошибка доступа при попытке получить эталонное изображение обратно из UIImage:Плохой доступ после освобождения ссылки изображения

CGImageRef imageRef = mat2CGImageRef(mat); 
_documentUIImage = [[UIImage alloc] initWithCGImage:imageRef]; 
CGImageRelease(imageRef); 

После этого, если я хочу, чтобы получить CGImageRef из UIImage меня плохая ошибка доступа!

return _documentUIImage.CGImage 

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

С наилучшими пожеланиями

ответ

0

Я думаю, что UIImageinitWithCGImage просто оборачивает CGImage и не дублирует данные.

В любом случае метод должен содержать CGImage, поэтому CGImageRelease не несет ответственности за исключение.

Это должно привести к выводу, что CGImageRelease необходимо удалить в вашем случае, так как mat2CGImageRef не сохраняет его. Что делает эта функция в любом случае? Попытайтесь следовать правилу, что только функции и методы, содержащие слова, такие как «create», «copy», «alloc», вызывают результат, который должен быть выпущен.

+0

Спасибо за ответ После сканирования кода .. CGImageRef был выпущен и в другом месте .. поэтому я сохранил только один релиз, и теперь он отлично работает с наилучшими пожеланиями –

Смежные вопросы