gpt4 book ai didi

objective-c - NSFetchedResultsController 在 performFetch 之后忽略 fetchLimit

转载 作者:搜寻专家 更新时间:2023-10-30 19:49:49 26 4
gpt4 key购买 nike

我有一个选项卡式应用程序,它有 2 个选项卡和 2 个 UITableView。
我也有 2 个 NSFetchedResultsController 类型的对象,但它们都在同一个实体上,具有不同的顺序和不同的获取限制。
当我从 Internet 下载更多对象并将它们插入数据库时​​,我的 NSFetchedResultsController 类型对象将忽略 fetchLimit。对于第一个,我将 fetchLimit 设置为 10,对于第二个,我将 fetchLimit 设置为 50。最初我在数据库中有 10 个对象。一切都好。在我下载了 40 个以上的对象后,第一个也加载了 40 个以上的对象,但它的 fetchLimit 为 10。

这是怎么回事?

最佳答案

NSFetchedResultsController 忽略 fetchLimit 以防它观察到上下文变化。

我认为,当您受限于 fetchlimit 时,通过 momc 观察正确更新表并不是那么简单的操作。

解决方案 #1

因此,如果发生大更新,您应该重新获取数据。

所以你应该在 FRC 委托(delegate)中做这样的事情:

- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller {
[self.tableView endUpdates];
if (bigChangesPeformed) {
NSError * error;

// Re-fetching to get correct fetch limit
[self.fetchedResultsController performFetch:&error];
if (error) {
// bla-bla-bla
}
[self.tableView reloadData];

}
}

关于objective-c - NSFetchedResultsController 在 performFetch 之后忽略 fetchLimit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9022580/

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