我想显示项目,以便它显示基于 sharedToUsers 的所有项目。表示带有 User.user_id 的部分名称,它应该显示与该用户的所有共享项目。但我无法正确设置 NSFetchedResultsController 的部分值,因为它是一个太多的关系并且它在 sectionNameKeyPath 上崩溃。 任何帮助
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *theParent = [NSEntityDescription entityForName:@"Project" inManagedObjectContext:_managedObjectContext];
//the name key exsit in parent entity of project.
NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sort]];
[fetchRequest setFetchBatchSize:10];
[fetchRequest setEntity:theParent];
[fetchRequest setPredicate:_predicate];
NSFetchedResultsController *theFetchedResultsController =
[[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
managedObjectContext:_managedObjectContext sectionNameKeyPath:@"ANY sharedToUsers.user_id"
cacheName:[self getCacheNameForNSFetchedResultsController]];
最佳答案
如果您有像我这样的情况,那么每当您更改核心数据中的数据时,请尝试不要使用父对象或类别对象来添加或更新关系项目。如果您必须将某些东西与类别链接,请尝试从子对象链接。
不要用这个
[category addRelationShipItem:child];
使用这个
`[child addToCategory:category];`
当您使用它时,它不会触发 NSFetchResultController 调用中的更新调用。
快乐编码。
关于ios - 对多关系作为 sectionNameKeyPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27417400/