我有一种方法可以分析由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/