ios - 对多关系作为 sectionNameKeyPath

标签 ios objective-c iphone core-data one-to-many

我想显示项目,以便它显示基于 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]];

to-many relation in coredata

最佳答案

如果您有像我这样的情况,那么每当您更改核心数据中的数据时,请尝试不要使用父对象或类别对象来添加或更新关系项目。如果您必须将某些东西与类别链接,请尝试从子对象链接。

不要用这个

[category addRelationShipItem:child];

使用这个

`[child addToCategory:category];`

当您使用它时,它不会触发 NSFetchResultController 调用中的更新调用。

快乐编码。

关于ios - 对多关系作为 sectionNameKeyPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27417400/

相关文章:

iphone - 在 iPhone 应用程序中轮询 Web 服务的正确方法

ios - 从 iOS 中的视频 url 或数据获取缩略图

ios - 在 swift 中使用递减变量作为 NSTimeInterval

ios - 使用 NSPredicate 过滤 NSArray

iphone - 在 Objective C 中生成 SHA256 字符串

ios - 如何根据 iPhone 型号的高度更改 UITableViewCell?

ios - Alamofire 安装失败 - Xcode 8.1

c# - 应用程序浏览器中的 iOS Facebook 的行为是否与 Safari 不同?

ios - 什么是编写这些数据的更简洁的方法?

objective-c - 如何创建监听 NSDistributedNotifcations 的代理/守护程序