ios - 分页时优化数组数据大小
问题描述
我知道如何使用 UITableview 实现分页,但我的问题是我们总是将下一页的数据附加到现有的完整数据数组中,因此每个下一页数组都在增加数组大小。
例如 - 我们在第一页获得 50 条记录,我们请求下一页,我们再次获得 50 条记录,然后我们将这些记录附加到现有的完整数组中,因此完整数组现在有 100 条记录。我正在请求大约 100 页的数据,因此我的数组将有 5000 条记录,因为我们知道保存一些起始页数组数据并不是一个好主意,因为我们在访问了 100 页后几乎不会返回起始页。
有没有办法优化数组大小?请帮助我,因为我搜索了很多但没有找到好的答案。
我将非常感谢您的帮助,并为我糟糕的英语感到抱歉。
解决方案
我认为您可以通过将“旧”数据写入本地存储,然后检索并插入回您的数组来实现这一点。
因此,假设您已经提取了 200 件物品。因此,当用户向下滚动并获取下一页(接下来的 20 个项目)时,您从数组中“剪切”从 0 到 99 的项目并写入文件。现在您的数组有 120 个项目。然后,当用户继续滚动并再次达到 220(array.count >= 220)时,重复相同的逻辑,依此类推。
现在是最有趣的部分。如果用户向后滚动并且顶部可见单元格的索引 <100,则您从文件中读取先前写入的数据(并从文件中删除)并在 0 位置插入到您的数组中。
当然,最好在应用启动时清除所有此类文件。
当然,我在下面写的数字是神奇的数字,您应该使用它们来找到最适合您需求的正确数字。
推荐阅读
- php - 如何制作一个只接受两个人在 PHP 中进行会话的登录系统?
- sql - 如果条件匹配,则计算行中的列
- python - 如何计算多个因变量(y1 和 y2)上的自变量(x)的相关性?
- java - getChildren() 如何访问外部类对象?
- javascript - 如何将变量添加到 package.json
- mysql - 如何在不更改配置文件的情况下将 mysql character_set_database 设置为 utf8mb4?(因为我无权访问这些文件)
- docker - 如何启用 cloudbees-jenkins-distribution docker push 以推送到受密码保护的私有注册表?
- assembly - 使用 IEND 时出现 ISTRUC NODE 错误“提供给 TIMES 的非常量参数”
- linux - 使用 getchar() 在原始模式下捕获 Ctrl-Enter?
- python - python使用sklearn进行线性回归