gpt4 book ai didi

iPhone快速sqlite查询

转载 作者:行者123 更新时间:2023-12-03 18:27:30 26 4
gpt4 key购买 nike

我正在访问近 30,000 个单词并在表格中显示。单词在 sqlite 文件中。因此,运行查询并将单词加载到表中需要很长时间(15 秒)。显然应用程序在启动时等待 15 秒。

我怎样才能解决这个问题?

NSLog(@"Query start");


CFTimeInterval startTime = CFAbsoluteTimeGetCurrent();

FMResultSet *rs = [db executeQuery:@"select * from words order by no ASC "];
while ([rs next]) {
Word *word = [[Word alloc] initWithID:[rs intForColumn:@"id"]
no:[rs stringForColumn:@"no"]
en:[rs stringForColumn:@"en"]];
[words addObject: word];
}
[rs close];
[db close];

CFTimeInterval endTime = CFAbsoluteTimeGetCurrent();
float deltaTimeInSeconds = endTime - startTime;
NSLog(@"Time spent for query: %f seconds", deltaTimeInSeconds);

注意:原始表未排序。它是字典的单词列表,因此在显示时,必须在表格 View 中按字母顺序排序。这就是为什么,我需要加载所有的单词。后台线程可能是一个更好的主意,从 sqlite 获取数据时填充数据。
sqlite 支持这个吗?使用回调方法获取数据。例如在 sqlite 查询中,对于获取的每 1000 条记录,我将更新我的表。我不太确定该怎么做,如果你知道请给我一些提示。

最佳答案

使用LIMITOFFSET一次获取数据 block 。此外,让 UITableView 驱动获取过程。当它触发 tableView:cellForRowAtIndexPath:并且有问题的行不可用,从 SQLite 获取并缓存包含该行的行 block 。您还可以有一个后台线程或事件循环在后台获取 block ,以最大限度地减少用户滚动表格时的延迟。

关于iPhone快速sqlite查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4077521/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com