• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - NSFetchedResultsController 与来自其他模型的数据

[复制链接]
菜鸟教程小白 发表于 2022-12-12 18:06:24 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在尝试使用来自 NSFetchedResultsController 的数据使用 UITableView 构建应用程序。问题是 - 我需要在表格 View 中显示来自其他模型的一些额外数据。

假设我有 2 个模型:学生和组(我认为关系很明显:组由许多学生组成,学生只能在一个组中)。我正在尝试使用组列表构建 UITableView。我还想知道每组的学生人数。

(NSFetchedResultsController *) fetchController {
   if (!_fetchController) {
    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    NSEntityDescription *entity = [NSEntityDescription entityForName"GroupModel" inManagedObjectContext:[NSManagedObjectContext MR_defaultContext]];
    [fetchRequest setEntity:entity];

    NSPredicate *messageInChatPredicate = [GroupModel getMyChatsPredicate];
    [fetchRequest setPredicate:messageInChatPredicate];

    NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey"name" ascending:YES];
    [fetchRequest setSortDescriptors:[NSArray arrayWithObject:sort]];

    _fetchController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:[NSManagedObjectContext MR_defaultContext] sectionNameKeyPath:nil cacheName"main"];
    _fetchController.delegate = self;
  }

  return _fetchController;
}

我想知道如何添加其他信息(例如每组的学生人数)?



Best Answer-推荐答案


为什么不直接使用 group.students.countgroup 实体中获取值?你只需要一个 fetchedResultsController,我想你会发现 Core Data 的性能很好。

您的术语有点困惑,通常模型是在 Xcode 中创建的核心数据模型,并且具有许多实体,例如小组,学生。有时您可以使用两种不同的模型和/或模型的不同版本。

您的对象通常被称为实体,它们都属于同一个核心数据模型。

编辑: 要获取子组的计数,例如女孩或男孩,您可以执行以下操作

NSMutableArray *boys = [[NSMutableArray alloc] init];
[NSPredicate predicateWithFormat"gender = %@",@"MALE"];
[boys addObjectsFromArray:[group.students filteredArrayUsingPredicate:predicate]];
NSLog(@" boys count is %d", boys.count);

当然假设 genderStudent 的一个属性。

关于ios - NSFetchedResultsController 与来自其他模型的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21231040/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap