FMDB 和 UITableView
Posted
技术标签:
【中文标题】FMDB 和 UITableView【英文标题】:FMDB and UITableView 【发布时间】:2010-11-12 22:42:59 【问题描述】:我们在 sqlite3 中有一个包含许多行的数据库。我们正在使用 SQLite3 的 FMDB Wrapper 在 UITableView 中显示数据。我们最好不要使用分页,因为这对于 iPhone/iPad 应用程序来说感觉很正常。我们希望,如果我们必须这样做,我们可以以 400 条左右的记录的形式这样做。
最好的方法是什么?有什么方法可以调用数据库上的
-(UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath`
?
即使我们做一个“更多记录...”表格单元格,一旦它们达到一个巨大的数字会发生什么?我们是否必须进行双向分页?
处理这个问题的最佳方法是什么?
谢谢。
【问题讨论】:
【参考方案1】:这就是我所做的,具有类似设置的 UITableView 有数千行。
我有一个数组(实际上是一个 C++ stl 向量),其中数组中的每个项目都映射到 UITableView 中的一行。填充了我要显示的项目的 sqlite 记录 ID 的数组。数组占用的内存是每行 4 个字节。
cellForRowAtIndexPath 在数组中查找记录 ID,然后从 sqlite 查询单元格所需的字段。由于 SQLite 索引记录 ID 列,因此速度非常快。
我的实际上有点复杂,因为我有 TableView 部分以及 TableView 索引。但并不过分复杂。
【讨论】:
我使用了类似的方法,但使用 [db executeQuery:@"select x from items where id in (?,?,?,?,?,?,?, ?,?,?)" withArgumentsInArray:ids]。启用语句缓存后,速度足以在第一代 iPod touch 上平滑滚动 10,000 行表视图。 在哪里可以找到此类项目的源代码示例?谢谢。以上是关于FMDB 和 UITableView的主要内容,如果未能解决你的问题,请参考以下文章
如何将 FMDB 与 cocoapods 和 swift 一起使用?