Ios deleteRowsAtIndexPaths:滑动以删除行从不释放单元格?
我想知道我是否偶然发现了一个bug,当他们的Ios deleteRowsAtIndexPaths:滑动以删除行从不释放单元格?,ios,objective-c,uitableview,dealloc,Ios,Objective C,Uitableview,Dealloc,我想知道我是否偶然发现了一个bug,当他们的UITableViewController解除分配时,滑动删除UITableViewCells却从未解除分配 我已经在我的自定义表单元格中添加了一个-dealloc方法,它将注销一条消息。当我按下导航控制器上的back键时,所有6条消息都已注销 如果我滑动以删除一个(或多个),然后按back,则只记录5个。因此,我注销已删除单元格的指针地址,以供将来参考。现在,当我返回并在任意点暂停执行时,我可以进入lldb提示符: po 14038295033424
UITableViewController
解除分配时,滑动删除UITableViewCells
却从未解除分配
我已经在我的自定义表单元格中添加了一个-dealloc方法,它将注销一条消息。当我按下导航控制器上的back键时,所有6条消息都已注销
如果我滑动以删除一个(或多个),然后按back,则只记录5个。因此,我注销已删除单元格的指针地址,以供将来参考。现在,当我返回并在任意点暂停执行时,我可以进入lldb提示符:
po 140382950334240
<TableLeakCell: 0x7fe67852a490; baseClass = UITableViewCell; frame = (-375 176; 375 44); text = 'Chris'; hidden = YES; autoresize = W; gestureRecognizers = <NSArray: 0x7fe678530d70>; layer = <CALayer: 0x7fe67852a860>>
po 140382950334240
这应该被解除分配!单元格的x.position
正好是-(tableView.width)
,并且hidden=YES
。如中所示,在动画完成后,单元仍处于该位置。或者它正在排队等待重用?无论哪种方式,它都永远存在,苹果的文档中也没有关于在调用deleteRowsAtIndexPaths后必须手动销毁手机的内容
快速概念验证项目:
至少使用
Xcode 7.2/iOS 9.2模拟器和Xcode 7.3/iOS 9.3设备
解除分配所有单元。唯一的变化是取消分配的顺序,删除的单元格get的取消分配是最后一次 很好的演示。向苹果提交错误报告!