【发布时间】:2014-06-11 11:55:19
【问题描述】:
我在Core Data 中有几个实体。一种称为EventCluster,用于保存和构造Event 对象。
我想要在我的UITableView 中做的所有事情都非常简单——我希望UITableViewSections 成为相应的EventCluster 对象,并且该部分的每一行都是一个Event 对象,它将按@987654328 排序@值。
现在我所做的就是:
- (NSFetchedResultsController *)fetchedResultsController {
if (_fetchedResultsController != nil) {
return _fetchedResultsController;
}
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:_managedObjectContext];
[fetchRequest setEntity:entity];
NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"eventID" ascending:NO];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sort]];
[fetchRequest setFetchBatchSize:20];
NSFetchedResultsController *theFetchedResultsController =
[[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
managedObjectContext:_managedObjectContext
sectionNameKeyPath:nil
cacheName:@"Root"];
self.fetchedResultsController = theFetchedResultsController;
_fetchedResultsController.delegate = self;
return _fetchedResultsController;
}
有没有一种方便的方法可以在这里设置NSFetchedResultsController 以包含EventCluster 结构?
【问题讨论】:
-
尝试将 sectionNameKeyPath 设置为 @"EventCluster"
-
@Koen,不,那行不通。与预期一样崩溃:
the entity Event is not key value coding-compliant for the key "EventCluster"。 -
他们在你的模型中没有关系?
-
确实如此,
EventCluster确实是Event的parentCluster属性。问题是我还必须对EventCluster对象进行排序,然后对其中的Event对象进行排序。 -
然后将sectionNameKeyPath设置为@"parentCluster"。
标签: cocoa-touch uitableview core-data nsfetchedresultscontroller