CGImageRef에서 빌드 된 NSBitmapImageRep 내부의 픽셀 데이터를 분석하는 방법이 있습니다. 여기에 관련 코드 :NSBitmapImageRep의 메모리 누수가 많습니다.
CGImageRef ref;
// omitted code for initializing ref
NSBitmapImageRep *bitmapRep = [[NSBitmapImageRep alloc] initWithCGImage:ref];
uint32* bitmapPixels = (uint32*) [bitmapRep bitmapData];
// do stuff with bitmapPixels
[bitmapRep release];
CGImageRelease(ref);
내가 제대로 CGImageRef 및 NSBitmapImageRep을 발표하고있어 알고는 있지만, -bitmapData에 대한 호출에 대한 2메가바이트에게가 호출 될 때마다 누수, 내가 제대로 해제하는 방법을 모른다 그것. 어떤 아이디어?
업데이트 : 중요한 점을 하나 추가하는 것을 잊어 버렸습니다. 전체 화면 응용 프로그램이 실행 중일 때만 메모리가 누출됩니다. 정기적 인 사용을 위해 메모리가 정상적으로 릴리스됩니다.
참조를 간략히 살펴보면 -bitMapData가 bitmapRep 객체 내의 데이터에 대한 포인터를 반환하기 때문에이를 해제 할 필요가 없음을 나타냅니다. 가비지 수집을 켜고 그 후에 무슨 일이 일어날 수 있습니까? 그것은 당신에게 단서를 줄지도 모릅니다. –
@Tony Ken의 솔루션은 일단 데이터가 완성되면 데이터를 공개하는 것으로 보입니다. 수영장이 없으면 Mac은 원하는 때에 언제든지 데이터를 공개하는 것처럼 보입니다. – pop850