【问题标题】:memory leak when calling an Api [closed]调用 Api 时的内存泄漏 [关闭]
【发布时间】:2018-07-09 19:50:56
【问题描述】:

如果我在没有分页的情况下将调用 API 返回的大约 1000 个单元格的数据加载到表视图中,是否会导致内存泄漏??

【问题讨论】:

  • 不,从 API 加载 1000 个元素不会导致内存泄漏。内存泄漏是指您忘记了未使用的对象并且它们仍在内存中但不再被使用。此外,表格视图非常高效并且可以重复使用单元格,因此内存中不会有 1000 个单元格。
  • 通常互联网上的任何指南都解释了在表格视图和集合视图中重用单元格的概念、实现和原因,去看看吧!

标签: ios swift tableview


【解决方案1】:

你应该刷新你的记忆(不是双关语)memory leak 是什么。不,在内存中有数千个条目并不一定会导致内存泄漏(Swift 中内存泄漏的主要来源是闭包)。但是,它可能会增加内存压力——这意味着您的应用可能会耗尽可用内存,从而导致意外行为(iOS 会通过调用视图控制器的 didReceiveMemoryWarning() 方法提前通知您的应用)。

至于UITableView,它只为可见单元分配内存,通常为10行左右。当您滚动表格视图时,它会重用那些从屏幕上消失的单元格(它在这些单元格上调用 prepareForReuse() 方法)并重新定位它们,以便它们显示新的内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-21
    • 2011-06-28
    • 2013-03-29
    • 2010-11-28
    • 2018-08-26
    相关资源
    最近更新 更多