我有一种分析NSBitmapImageRep内部像素数据的方法,该方法是由CGImageRef构建的。以下是相关代码:
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,而且我不知道如何正确地释放它。有什么想法吗?
更新:--我忘了添加一点:内存只有在全屏应用程序运行时才会泄漏。对于正常的使用,内存可以很好地释放。
发布于 2010-02-03 04:25:39
你是在循环中做这个吗?如果是这样的话,您可能需要创建一个自动释放池,以确保及时清理内存。见自动释放池。
发布于 2009-11-14 07:30:51
位图数据应该由CGImage或NSBitmapImageRep拥有(或者由后者复制到后台自动发布的NSData对象)。因此,无论哪个对象拥有(或复制)它都应该释放它。
你看到堆/仪器的相反结果了吗?
https://stackoverflow.com/questions/1733509
复制相似问题