我有一个包含三个实体的核心数据模型:Notification
,Group
和Customer
。这些是它们之间的关系:对于核心数据中的多对多关系,sectionNameKeyPath的值
- 一位顾客属于很多群体,一个群体可以有很多顾客。
- 通知被发送(属于)到一个组,并且一个组可以接收(有)很多通知。
我想显示所有通知按客户分组的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
值中的几个关系?在这种情况下应该如何处理多对多的关系?
“通知”可以属于多个“客户”。您是否想要在其所属的每个“客户”部分中显示通知? –
@MartinR是的,在这个特定的应用程序中,可以在几个部分重复相同的通知。 – elitalon
我不认为这是可能的与获取结果控制器,因为FRC无法返回具有重复元素的对象列表。 –