我有一个包含三个实体的核心数据模型Notification
:Group
和Customer
。这些是它们之间的关系:
- 一个客户属于多个组,一个组可以有多个客户。
- 一个通知被发送(属于)一个组,一个组可以接收(拥有)许多通知。
我想UITableView
按客户分组显示所有通知。我创建了一个NSFetchedResultsController
这样的:
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
fetchRequest.fetchBatchSize = 10;
fetchRequest.predicate = nil;
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Notification"
inManagedObjectContext:self.managedObjectContext];
fetchRequest.entity = entity;
// Default sort descriptors are built in a separate custom method
NSArray *sortDescriptors = [self getDefaultSortDescriptorsForEntity:entity];
fetchRequest.sortDescriptors = sortDescriptors;
return [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
managedObjectContext:self.managedObjectContext
sectionNameKeyPath:@"group.customers.firstName"
cacheName:nil];
假设这是检索按客户分组的所有通知的有效方法(我也不确定)iOS 抛出以下异常:
@"Failed to fetch all Notification objects"
@"Reason: Invalid to many relationship in setPropertiesToFetch: (group.customers.firstName) (NSInvalidArgumentException)"
我一次又一次地审查了这些关系,看看是否缺少某些东西,并且一切似乎都是正确的。我可以为所有实体创建和删除对象,它们之间的链接也是正确的。
我的问题是:是否可以遍历一个sectionNameKeyPath
值中的多个关系?这种场景下应该如何处理多对多关系呢?