我在使用关系创建 tableView 部分时遇到困难。

我有两个具有关系的实体 列表 > Item
ios - 核心数据 - 具有一对多关系的 sectionNameKeyPath-LMLPHP

我希望 列表 是部分,而 项目 是行。我使用关键路径 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:nilsetSortDescriptor:itemSort 时,它​​会很好地填充 tableView。此外,numberOfSectionsInTableViewcontroller didChangeSection 已正确设置。

我不确定我做错了什么。有人可以帮我解决这个问题吗?

谢谢

最佳答案

将部分名称键路径更改为 itemList.listName,因为 FRC 需要该部分的字符串名称,而不是“代表”该部分的托管对象。

关于ios - 核心数据 - 具有一对多关系的 sectionNameKeyPath,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32219623/

10-10 20:50