SQLite数据库巨大记录在我的ios应用中获取

时间:2019-02-10 09:35:55

标签: ios sqlite crash

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

2 个答案:

答案 0 :(得分:3)

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

对于移动设备,

300,000条记录很多。很难想象所有这些记录都同时显示给用户。通常,一个表格视图中会显示10-20,并且随着用户滚动,他希望能够看到更多内容。

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

在看不到您的代码的情况下很难提供更好的建议,但是我希望这会有所帮助。

答案 1 :(得分:0)

在ios上搜索大型本地sqlite数据库时,我遇到了相同的问题,并使用后台扩展任务Apple doc对其进行了修复 还检查有限长度任务表单raywenderlich