首页 > 解决方案 > Sqlite 数据库在我的 ios 应用程序中获取大量记录

问题描述

在我的 ios 应用程序中,我需要从 sqlite 数据库中获取大约 300 000 条记录(选择查询)。但是正在发生的事情是在 xcode 模拟器中占用了大约 6GB 内存,当我在设备中运行时(它从 1GB 中占用了 700MB),而不是设备崩溃了。我怎样才能最好地克服这个问题。

标签: iossqlitecrash

解决方案


据我了解,您正试图在移动设备上一次从 SQL 数据库中查询 300,000 条记录,并且内存不足。

300,000 条记录对于移动设备来说已经很多了。很难想象所有这些记录同时显示给用户。通常在 tableview 中显示 10-20 个,并且随着用户滚动,他希望能够看到更多。

当一个人第一次加载页面时,您不需要加载他可以滚动到的所有可能的实体。你只需要数一数。当用户滚动时,您可以根据需要获取记录。例如,您首先对前 20 个进行查询,当用户滚动时,您会加载记录 21-40,然后是 41-60 等。您可以将获取的内容保存在一个小缓存中,并在用户滚动时将其清除,这样你一次没有太多的记忆。

如果没有看到您的代码,很难给出更好的建议,但我希望这会有所帮助。


推荐阅读