Ios 核心数据-具有一对多关系的sectionNameKeyPath

Ios 核心数据-具有一对多关系的sectionNameKeyPath,ios,objective-c,core-data,nsfetchedresultscontroller,Ios,Objective C,Core Data,Nsfetchedresultscontroller,使用关系创建tableView分区时遇到困难 我有两个具有关系的实体列表项。 我希望列表成为部分,项成为行。我使用键路径设置了部分nameKeyPath@“itemList”。 下面是我的其他fetchedResultsController的外观 - (NSFetchedResultsController *)fetchedResultsController { if (_fetchedResultsController != nil) { return _fetch

使用关系创建tableView分区时遇到困难

我有两个具有关系的实体列表

我希望列表成为部分,成为行。我使用键路径设置了
部分nameKeyPath
@“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
已正确设置

我不确定我做错了什么。有人能帮我吗


谢谢

将节名键路径更改为
itemList.listName
,因为FRC希望节名为字符串名,而不是“表示”该节的托管对象。

以下是我的结论。因为我想使用
displayOrderList
对节进行排序,所以我使用
itemList.displayOrderList
作为节名键路径,使用
itemList.displayOrderList
作为排序描述符。在titleForHeaderInSection中,我将section的标题更改为
listName
,效果很好。谢谢你的帮助!