首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSBitmapImageRep中的巨大内存泄漏

NSBitmapImageRep中的巨大内存泄漏
EN

Stack Overflow用户
提问于 2009-11-14 06:41:04
回答 2查看 1.7K关注 0票数 0

我有一种分析NSBitmapImageRep内部像素数据的方法,该方法是由CGImageRef构建的。以下是相关代码:

代码语言:javascript
复制
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,而且我不知道如何正确地释放它。有什么想法吗?

更新:--我忘了添加一点:内存只有在全屏应用程序运行时才会泄漏。对于正常的使用,内存可以很好地释放。

EN

回答 2

Stack Overflow用户

发布于 2010-02-03 04:25:39

你是在循环中做这个吗?如果是这样的话,您可能需要创建一个自动释放池,以确保及时清理内存。见自动释放池

票数 3
EN

Stack Overflow用户

发布于 2009-11-14 07:30:51

位图数据应该由CGImage或NSBitmapImageRep拥有(或者由后者复制到后台自动发布的NSData对象)。因此,无论哪个对象拥有(或复制)它都应该释放它。

你看到堆/仪器的相反结果了吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1733509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档