作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
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/
我正尝试像这样为我的方法配置缓存: @Cacheable(value = USER_ENTITY_1_CACHE, key = "#userId") public List findEntities1
我是一名优秀的程序员,十分优秀!