ios - 为什么这些VM :UITableViewCellSelectedBackground(CALayer) come out for every UITableViewCell in Allocations?

标签 ios uitableview memory-leaks allocation

我正在使用分配来测试我的应用程序的解压缩代码。我使用 Master UITableViewController 来显示 11 个文件名。测试应用截图如下: enter image description here

当你选择一个时,它会推送一个UIViewController来显示文件,然后返回到Master UITableViewController

现在,如果您重复选择一个单元格,则图表中不会出现内存峰值。但如果从1到2中选择,那么各代之间至少会增加224KB的内存。我从 1 测试到 11。所有这些更改将增加几乎相同的内存。截图如下: enter image description here

查看细节发现有一个VM:UITableViewCellSelectedBackground(CALayer)(有的叫VM:CoreAnimation,但都是一样的224KB)在增长。而且,如果我选择选定的单元格,则不会出现如此大的内存峰值。似乎它们只会在第一次选择一个单元格时创建。

现在我的问题是他们为什么要出来?这是一种内存泄漏吗?如果是,我该如何解决?任何帮助将不胜感激。

更新: 我已经确认与我的解压代码没有任何关系,如果我注释掉解压代码,VM:UITableViewCellSelectedBackground(CALayer) 在选择一个新单元格时仍然存在。

最佳答案

我在模拟器上测试过,结果和你差不多。但是过段时间内存会掉下来。

我不认为这是内存泄漏。当我们选择一个单元格时,系统可能会在它上面添加一个半透明层。

该层在需要时创建,因此它增加了内存。

我确定一旦选择了一个单元格,系统将创建一些对象(某些与图层或图层本身相关的东西),尽管稍后取消选择单元格,但这些对象不会被释放,这些对象可能有一些缓存需要改进下次选择单元格时的性能。

关于ios - 为什么这些VM :UITableViewCellSelectedBackground(CALayer) come out for every UITableViewCell in Allocations?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20879476/

相关文章:

c++ - 删除未引用的动态内存

ios - 如何在 Xcode 中为 UIView 的宽度和高度设置动画?

ios - 如何在 iOS 中将表格 View 内的表格单元格中的图像解析为详细 View ?

ios - 无法在 UIPopover 的 UINavigationController 侧调整 UIViewController 的高度 contentSizeForViewInPopover

xcode - 更改详细信息披露按钮的图像(Xcode 4.2)

ios - 具有大小类的自调整大小的 UITableViewCells 中的多行 UILabel - iOS 8 和 Swift

c++ - 我是否负责在 QImage::bits() 函数提供的指针上调用 delete?

memory-leaks - Golang WaitGroup导致内存泄漏,我该怎么做才能改进这个功能

ios - 启动图像未显示在 iOS 应用程序中(使用 Images.xcassets)

ios - 如何使用嵌套的 NSDate 属性将 Realm 对象转换为 JSON?