我想在UITableView
的数据库中显示数百条记录。虽然我可以使用CoreData,但我决定尝试使用SQLite数据库,因为我目前正在参加数据库讲座。虽然我可能会将所有数据加载到一个数组中,但我希望最大限度地减少内存使用量,这样我就可以为具有更多数据的另一个应用程序使用相同的代码。所以我的问题是,如何从数据库中加载当前显示在表视图中的行?我想要显示的表有几个属性,主键是一个字符串 - 表应该按此字符串排序。那么我如何找出显示的单元格(索引),然后我应该使用select * from mytable limit x,y
来获取我想要显示的行,还是可以以任何方式提高性能(使用SQLite或使用一些优秀的代码) 。
提前感谢您的帮助!
BTW:如果这没有任何区别,我会使用FMDB。
答案 0 :(得分:1)
在某种程度上,你要做的是荒谬的。 NSFetchedResultsController
是Core Data的一部分,它为您完成所有优化,以便在表视图中显示100个行的100个。
但是看起来你正在做这个学术练习,这里有一些提示:
numberOfRowsInSection
中告诉表格视图的总记录数。它只会请求显示它需要的记录。 indexPath.row
表示。indexPathsForVisibleRows
获取表格视图的所有可见单元格,以防您需要检查屏幕上的内容。 scrollViewDidScroll
并对contentOffset
进行正确的计算,并动态设置表格contentOffset
以反映表格的正确部分。