NSFetchedResultsController *frc = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:moc sectionNameKeyPath:nil cacheName:@"Root"];
Run Code Online (Sandbox Code Playgroud)
为什么我们必须考虑缓存名称?这个决定有多重要?如果有两个 NSFetchedResultsController 实例使用完全相同的 cacheName 会发生什么?那有关系吗?那是某种单身人士的东西吗?
考虑到 Core Animation,还有这个奇怪的 animationID 参数,但将它设置为完全相同的东西,同时几十个动画并不会影响动画。所以我想这可能是同样的事情……或者不是?
如果您有UITableView数百个对象,则缓存非常重要,因为它会将加载时间从几秒更改为几毫秒。诀窍是缓存与其NSPredicate. 如果您更改谓词,则会重建缓存。如果您NSPredicate不断更改,则缓存无用。
如果您有一个与其一致的表视图,NSFetchRequest那么缓存将大大提高性能。
批量大小在您设置时确定,并且仅在必须返回到持久存储时才适用。如果缓存中有数据,那么它将首先被命中,根据我的经验,批处理大小将被忽略。
| 归档时间: |
|
| 查看次数: |
936 次 |
| 最近记录: |