gpt4 book ai didi

ios - NSFetchedResultsController 只获取前 10 个项目

转载 作者:行者123 更新时间:2023-11-28 22:21:31 25 4
gpt4 key购买 nike

我正在使用 NSFetchedResultsController(和委托(delegate)方法)将 CoreData 中的项目显示到 UITableView 中。

但是,我只希望表格显示前几项(比如 10)。

为此我做了这...

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return MIN([[self.fetchedResultsController fetchedObjects] count], 10);
}

如果有超过 10 个项目,这将返回 10。否则,如果小于 10,它将返回项目数。

它适用于下载的前 10 个项目。但是,我随后触发了下载数据的刷新。

这向 CoreData 添加了另外 10 个项目,然后触发了 FRC 委托(delegate)方法。

这导致错误说...

There were 10 items before the update. You added 10 items. Now there are still 10 items but there should be 20.

这来自 UITableView beginUpdatesendUpdates 方法。

我知道这是正确的,因为我正在向 CoreData 添加内容,但我仍然只希望它显示前 10 个。

是否有完全不同的方式来做到这一点?或者我能以某种方式修复委托(delegate)方法吗?

最佳答案

与其使用 begin 和 end 更新方法,不如重新加载 TableView 。这意味着您不会告诉表有关新行的信息(以及有多少行)。

另外,在 FRC 上,一定要为获取请求设置获取限制,这样它就不会获取超过要求的数量。

关于ios - NSFetchedResultsController 只获取前 10 个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20270123/

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