【发布时间】:2015-08-26 06:41:12
【问题描述】:
我在使用关系创建 tableView 部分时遇到困难。
我希望 List 成为部分,Item 成为行。我将sectionNameKeyPath 设置为键路径@"itemList"。
这就是我的 fetchedResultsController 其余部分的样子
- (NSFetchedResultsController *)fetchedResultsController {
if (_fetchedResultsController != nil) {
return _fetchedResultsController;
}
// Fetch Request
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Item"];
[fetchRequest setFetchBatchSize:20];
// Sort Descriptors
NSSortDescriptor *itemSort = [[NSSortDescriptor alloc] initWithKey:@"displayOrderItem" ascending:YES];
NSSortDescriptor *sectionSort = [[NSSortDescriptor alloc] initWithKey:@"displayOrderList" ascending:YES];
NSArray *sortDescriptors = @[sectionSort, itemSort];
[fetchRequest setSortDescriptors:sortDescriptors];
// Fetched Results Controller
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:@"itemList" cacheName:nil];
aFetchedResultsController.delegate = self;
self.fetchedResultsController = aFetchedResultsController;
NSError *error;
if (![self.fetchedResultsController performFetch:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
}
return _fetchedResultsController;
}
结果是 fetchedResultsController 根本没有填充 tableView。当我尝试不带部分时,使用sectionNameKeyPath:nil 和setSortDescriptor:itemSort,它会很好地填充 tableView。此外,numberOfSectionsInTableView 和 controller didChangeSection 已正确设置。
我不确定我做错了什么。有人可以帮我解决这个问题吗?
谢谢
【问题讨论】:
标签: ios objective-c core-data nsfetchedresultscontroller