0

我的 UiimageViews 有一个有趣的问题。我有一个应用程序(有 2 个房子的游戏),我在屏幕上加载了很多图像(我正在使用 UIIMageView)。在 ios4.3 上运行良好,但在 ios5 上发生了很多崩溃(我查看了 spc 程序上的可用内存差异约为 40-50mb!)。

我已经删除了所有可能的@2x 图像(用于视网膜设备),现在我的崩溃情况有所减少 - 但它们仍然存在。

我分析发现所有的崩溃都出现在viewWillAppearviewDidAppear之间。看起来像图像加载到视频内存时。

我在游戏中有 2 个房子,我可以先加载任何房子,然后我卸载房子(当然仪器显示我没有泄漏)。我尝试加载第二所房子,然后我崩溃了。看起来图像没有从显存中卸载。是否可以 ?

当我们删除@2x 图像时,我们可以加载更多房屋,但有时会在 viewWillAppear 和 viewDidAppear 之间再次崩溃。

谢谢,

4

2 回答 2

1

对我来说听起来像是一个记忆问题......你是否重复使用删除的对象?当应用程序崩溃时,您的控制台输出是什么?

于 2011-11-18T09:03:53.147 回答
1

看起来像您的应用程序因占用过多内存而被终止的典型案例。您可以通过实现 didReceiveMemoryWarning 回调来检查这一点。你的图片有多大?有许多关于 UIImageViews 内存问题的帖子,例如这里。您必须确保将 UImageViews 从其父视图中删除并在不需要时正确释放。

于 2011-11-18T09:08:25.620 回答