在我的一个中UIViewControllers
,我有一个UITableView
,它只有两行,并且都始终在屏幕上可见。这是历史上的表格视图(另一位开发人员这样做了 - 我没有坚持下去)。因为表格的两行总是可见的,所以当cellForRowAtIndexPath
调用 my 时,我从 XIB 创建一个单元格并存储对其中一个子视图 ( UITextView
) 的引用。当我需要从中获取文本时UITextView
,我只需使用本地参考。这很好用 - 大多数时候。
在一个特定情况下,我从这个导航到另一个UIViewController
(使用pushViewController:animated
)。那个新的视图控制器使用了相当多的内存,所以在内部 iOS 会从第一个视图控制器中取消分配表行(它不再可见,因为另一个视图控制器处于活动状态) - 当我返回到第一个视图控制器时,它只是调用cellForRowAtIndexPath
再次。当该行被释放时,我在内部存储的引用自然不再有效 - 如果我尝试使用它,应用程序崩溃(“选择器发送到释放的实例”)。
我的问题是:当 iOS 内部释放表格单元格时,我如何才能捕捉到,以便我可以将我的引用设置nil
为稍后重新分配?