我正试图在我的swift应用程序中找到内存问题。通过检查deinit是否被调用(例如代理中的强引用)找到了一些但是检查UITableViewCell或UICollectionViewCell我没有看到deinit从未被调用。
我使用了一个非常简单的单元格:
更新
检查tableView是否正在调用它的deinit,但事实并非如此。所以UIViewController调用它的deinit但是tableView仍在内存中。
更新2:
发现了这个问题。一个后卫让我们在辅助函数中保持对tableView的强引用。
答案 0 :(得分:6)
由于tableview单元格被重用,如果tableview本身被删除,它们往往只会被删除。因为即使它们现在没有被使用,tableview也会保持它们存活,以防它们被重用。