首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIImage ImageNamed方法

UIImage ImageNamed方法
EN

Stack Overflow用户
提问于 2011-01-31 03:20:16
回答 1查看 376关注 0票数 0

在我的应用程序中,我正在将几个图像加载到UIScrollView上,并使用核心图形例程突出显示滚动视图的一部分。在例程中,我使用了CGImageRelease和CGContextRelease来管理内存。

当我使用instruments (allocation)运行应用程序时,我发现每次滑动scrollView时,内存消耗都在不断增加。这在某种程度上导致应用程序变得非常慢。

对于加载不同的图像,我使用UIImage ImageNamed方法,我遇到一些帖子表明这不是一个好主意,因为该方法会导致自动释放的图像,从而产生内存问题。我想知道我是否在寻找错误的正确位置。在什么地方可以找到这种不寻常的内存消耗?

另外,使用Instruments的分配,我可以看到内存的增加,是否有可能指出这些分配发生的代码?

提前感谢您的帮助!

最佳DKV

EN

回答 1

Stack Overflow用户

发布于 2011-01-31 09:03:57

为了加载不同的图像,我使用UIImage ImageNamed方法,我遇到一些帖子表明这不是一个好主意,因为该方法会导致自动释放的图像,从而产生内存问题。

不,这不是问题所在。任何不涉及你自己调用allocinitWithSomethingOrOther:release的行为都会导致图片自动发布。

问题是,在imageNamed:将镜像交给您之后,它仍然拥有该镜像。您从imageNamed:获得的每个图像都会保存在该缓存中,并与该名称永久关联。它不仅仅是一个“加载此图像”方法;它还是一个“加载此图像并使其永远存在*”方法。

*其中“永远”表示“直到我的进程结束”。

我想知道我是否找对了错误的位置。在什么地方可以找到这种不寻常的内存消耗?

在仪器中。它将准确地告诉您正在创建的每种对象的数量,以及每种对象占用的内存总量,您可以对该列表进行排序,以确定哪些对象正在占用内存。然后,您可以深入到每个类和每个对象,以确定是什么使对象在需要时保持活动状态。

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

https://stackoverflow.com/questions/4844922

复制
相关文章

相似问题

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