objective-c - Obj-C、UITableView UI 改进以处理大量记录,也就是点击下一步获取更多行?

标签 objective-c ios cocoa-touch uitableview

我正在寻找一些技术指导,也许是教程。

我不得不在表格 View 中处理我预期的更多行/单元格。

我已经开发/发布了 View /屏幕,但是如果有很多记录,它会很慢,直到即将发布的版本才出现这种情况。

我想我需要在我的 sqlite 查询中使用限制/偏移量,但是我的表等中有部分。

我还必须创建一个单元格/行,用户可以在其中点击以显示接下来的 50 条记录。

这一定是一个很常见的问题,之前肯定已经讨论过了。

我的问题是开发此功能所需的时间。我对项目的投入太深,无法转换为核心数据

最佳答案

也许 Core Data 是一个有效的解决方案。如果您使用与 UITableView 链接的 NSfetchedResultController(及其 NSFetchRequest),项目将为您管理。

但是如果你不想使用 Core Data,这里有一个简单的建议:

在模型中加载一堆数据(比如前 50 项)。加载后,该模型用于在表格中显示数据。当用户到达表格末尾时,我会在该表格 View 的页 footer 分显示“显示更多”标签。然后如果用户点击它,再次加载数据(其他 50 项),将它们缓存在模型中并重新加载表,等等。

如果您有一个部分和多个行,则可以应用此技巧。

希望对您有所帮助。

编辑

如果您不想使用 Core Data,我会执行以下操作(一些准则)。

使用LIMIT SQL语句来限制结果的数量(例如20)。

在您的 .h 中创建一个偏移量变量,例如:

NSUInteger offset;

和类似的方法:

- (NSArray*)fecthMore;

然后在 .m 中,像下面这样实现该方法:

- (NSArray*)fecthMore
{
   // using the offset to retrieve the array of results (e.g resultArray)
   // the first time you grab the first 20 elements (0-19), the second time the next 20 (20-39)
   // and so on

   offeset += [resultArray count]; // next 20
   return resultArray;
}

每次模型返回数组更新。

关于objective-c - Obj-C、UITableView UI 改进以处理大量记录,也就是点击下一步获取更多行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9453313/

相关文章:

iphone - 将Textview文本转换为post请求参数--iphone开发

iphone - 在两者之间进行选择 - Interface Builder 或通过代码创建

objective-c - 正确使用 sizeof 和 Byte[]

ios - UIActivityViewController,事件未完成,共享选项未加载

ios - 在 MKUserTrackingModeFollowWithHeading map 模式下设置 MKMapCamera 时奇怪的 MKMapView 行为

ios - 产生错误的空数组

iphone - 为什么 iCloud 有时会停止工作?

objective-c - 如何从 Swift 将 Int 值传递给 Objective C 函数?

objective-c - 如何在 Objective C 中声明类数组

iPhone OS 4.x - 后台 TCP 套接字没有响应