【发布时间】:2016-10-19 13:36:26
【问题描述】:
所以我有一个 UIView,其中包含一个带有相当大图像(比如 1600x1600)的 UIImageView。当我加载它时,我可以在 Xcode 上看到内存按预期增加但仍然可以管理。
现在,如果我 myView.removeFromSuperview() 内存没有下降,并且如果我继续一次添加和删除带有其他图像的视图,则类似于:
- 设置图片
- 将其添加到视图中
- 从超级视图中删除图像
- 设置另一张图片
- 将其添加到同一视图中
- 回到 3 并继续循环
每次迭代后,我都会看到内存不断增加,直到最终内存不足,收到内存警告并崩溃。
这是预期的吗?从superview中删除图像时不应该释放内存吗?
【问题讨论】:
-
你应该提供一些代码来显示你到底在做什么。如果您持有对该视图的引用,则 removeFromSuperview 不会释放您的视图对象。
-
向我们展示您的代码。
-
看看这个UIImage cache 当你使用 UIImage(named:_) 它会缓存图像。这可能不是你想要的。
标签: ios xcode swift memory-management