gpt4 book ai didi

iphone - 必须为 NSFetchedResultsController 提供cacheName 有什么意义?

转载 作者:行者123 更新时间:2023-12-03 18:58:07 25 4
gpt4 key购买 nike

NSFetchedResultsController *frc = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:moc sectionNameKeyPath:nil cacheName:@"Root"];

为什么我们必须考虑cacheName?这个决定有多重要?如果有两个 NSFetchedResultsController 实例使用完全相同的 cacheName 会发生什么?这有关系吗?这是某种单例的东西吗?

考虑到核心动画,还有这个奇怪的animationID参数,但是将它设置为几十个同步动画完全相同的东西根本不会损害动画。所以我想这里可能是同样的事情......或者不是?

最佳答案

如果您的 UITableView 包含数百个对象,则缓存非常重要,因为它将加载时间从几秒更改为几毫秒。诀窍在于缓存与其 NSPredicate 是一一对应的。如果更改谓词,缓存将被重建。如果您不断更改NSPredicate,那么缓存就没用了。

如果您有一个与其 NSFetchRequest 一致的 TableView ,那么缓存将极大地提高性能。

更新

批量大小是在您设置时确定的,并且仅在必须返回到持久存储时才适用。如果缓存中有数据,那么它将首先被命中,并且根据我的经验,批量大小将被忽略。

关于iphone - 必须为 NSFetchedResultsController 提供cacheName 有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3035791/

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