gpt4 book ai didi

swift - iOS - Collection View 是否将每个单元格都保存在内存中?

转载 作者:行者123 更新时间:2023-11-28 13:51:27 25 4
gpt4 key购买 nike

我有一个包含 6 种不同类型单元格的垂直 Collection View ...我观察到,当我滚动时,正在从服务器获取新帖子,(我正在使用分页机制(我正在获取 20到 20)) 应用程序崩溃并显示日志 Message from debugger: Terminated due to memory issue

我还注意到,当分配的 RAM 超过 1 GB 时会发生这种情况,这很疯狂,因为在任何给定时间大约有 3 个帖子出现...当获取 400 多个帖子时会发生这种情况!

我想当一个单元格不在 View 中时, Collection View 会释放它。是对的吗?因此,如果一个单元格有一个图像,我在它即将呈现时下载/缓存,然后该单元格不再可见,因为我滚动了,那么图像不应该在内存中。对吧?

编辑 1:

我在代码中所做的是检查 willDisplay cell 将要显示的单元格是否是最后一个单元格。如果是,那么我将请求服务器将接下来的 20 个帖子(如果有的话)带给我。当它出现时,我将新帖子附加到 posts 数组。之后我只是重新加载 Collection View 。

编辑 2:

我正在使用 Parse SDK 中的 PFImageView 作为缓存机制

最佳答案

不,它们被重复使用。

图像可能在缓存中,这可能是导致您使用大量内存的原因。它们应该在必要时从内存中删除,如果你想从头开始实现它,你可以在 NSCache 上搜索。

我建议使用 SDWebImageKingfisher 来有效地下载和缓存图像。

Collection views employ a view recycling program to improve efficiency. As views move offscreen, they are removed from view and placed in a reuse queue instead of being deleted. As new content is scrolled onscreen, views are removed from the queue and repurposed with new content.

文档: https://developer.apple.com/library/archive/documentation/WindowsViews/Conceptual/CollectionViewPGforIOS/CollectionViewBasics/CollectionViewBasics.html

关于swift - iOS - Collection View 是否将每个单元格都保存在内存中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54554006/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com