Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios deleteRowsAtIndexPaths:滑动以删除行从不释放单元格?_Ios_Objective C_Uitableview_Dealloc - Fatal编程技术网

Ios deleteRowsAtIndexPaths:滑动以删除行从不释放单元格?

Ios deleteRowsAtIndexPaths:滑动以删除行从不释放单元格?,ios,objective-c,uitableview,dealloc,Ios,Objective C,Uitableview,Dealloc,我想知道我是否偶然发现了一个bug,当他们的UITableViewController解除分配时,滑动删除UITableViewCells却从未解除分配 我已经在我的自定义表单元格中添加了一个-dealloc方法,它将注销一条消息。当我按下导航控制器上的back键时,所有6条消息都已注销 如果我滑动以删除一个(或多个),然后按back,则只记录5个。因此,我注销已删除单元格的指针地址,以供将来参考。现在,当我返回并在任意点暂停执行时,我可以进入lldb提示符: po 14038295033424

我想知道我是否偶然发现了一个bug,当他们的
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的取消分配是最后一次

很好的演示。向苹果提交错误报告!