2012-05-16 2 views
4

내가 아래로의 CGImage에 이미지있는 NSData 변환 누수하지만 난 거기에 메모리 누수를 얻고 있지만 하나의 방법을 점점 누수와 그 변환을 말해 :밖으로 메모리 CGImageRef에 이미지있는 NSData로 변환하는 방법

CFDataRef imgData; 
CGDataProviderRef imgDataProvider; 
CGImageRef image1; 
imgData = (CFDataRef)[array objectAtIndex:i]; 
    imgDataProvider = CGDataProviderCreateWithCFData (imgData); 
    image1 = CGImageCreateWithPNGDataProvider(imgDataProvider, NULL, true, kCGRenderingIntentDefault); 

답변

9

이 작동합니다 : 당신이 그것으로 완료 한 후

CFDataRef imgData; 
CGDataProviderRef imgDataProvider; 
CGImageRef image1; 
imgData = (CFDataRef)[array objectAtIndex:i]; 
imgDataProvider = CGDataProviderCreateWithCFData (imgData); 
CFRelease(imgData); 
image1 = CGImageCreateWithPNGDataProvider(imgDataProvider, NULL, true, kCGRenderingIntentDefault); 
CGDataProviderRelease(imgDataProvider); 

CGImageRelease(image1);를 사용하는 것을 잊지 마십시오.

+1

+1. @laxcha, [Core Foundation을위한 메모리 관리 프로그래밍 가이드] (https://developer.apple.com/library/mac/#documentation/CoreFOundation/Conceptual/CFMemoryMgmt/Concepts/Ownership.html)를 읽어보십시오. Core Graphics는 Core Foundation 메모리 관리 규칙을 따릅니다. –

관련 문제