2012-02-09 112 views
0
self.fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:request managedObjectContext:self.photoDatabase.managedObjectContext sectionNameKeyPath:@"status" cacheName:nil]; 

如果我将此缓存设置为类似@"fetch_cache"的东西,那么我的表是颠倒的。第1节在第0节上面!NSFetchedResultsController缓存使表颠倒

我是CoreData的新手。我应该知道什么?

更新:我有一个排序描述符,它的工作原理。忘了把它放在这里。

回答

0

核心数据中没有隐式排序,因此您可能需要告诉控制器如何排序这些对象。

看看NSSortDescriptor并致电-setSortDescriptors:在您的NSFetchRequest

0

sectionNameKeyPath只指定分组,它不会为您排序这些对象。您必须将NSSortDescriptor添加到您的request

+0

哦,对不起。我没有发布它,但我有一个为请求定义的工作排序描述符。而且缓存为零时请求正常工作。但是当我添加一个缓存文件时,它会突然颠倒过来。 – 2012-02-09 06:32:37

+1

从[Apple文档](https://developer.apple.com/library/ios/#documentation/CoreData/Reference/NSFetchedResultsController_Class/Reference/Reference.html),请确保您的'NSSortDescriptor'数组中的第一项通过'@“状态”'正确地对对象进行排序。同样来自同一页:'如果您正在使用缓存,则必须在更改任何获取请求,谓词或其排序描述符之前调用deleteCacheWithName:。除非将cacheName设置为nil.',否则不得重复使用相同的提取结果控制器进行多个查询 – 2012-02-09 06:45:54