我有一种方法可以分析由CGImageRef构建的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 MB,并且我不知道如何正确释放它。有任何想法吗?

更新:我忘了补充一点:内存仅在运行全屏应用程序时泄漏。对于常规使用,可以释放内存。

最佳答案

您是否正在循环执行此操作?如果是这样,您可能需要建立一个自动释放池,以确保及时清理内存。请参见autorelease pools

关于objective-c - NSBitmapImageRep中的大量内存泄漏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1733509/

10-10 06:49