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

ios - 如何获取所有对象A的一对多关系B的所有属性的NSSet

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

假设我有一个包含数千个对象的实体 A。这些对象中的每一个都与另一个实体 B 具有一对多的关系。实体 B 的一个属性是“部分”。

我想要实体 A 的所有对象中 B 的所有不同部分的 NSSet。

如果我只希望 B 的不同部分用于 A 的一个对象,我会使用:

[A valueForKeyPath"B.section"];

但是有没有一种有效的方法来为 A 的所有对象获取此信息?在我看来,获取 A 的所有对象然后迭代这个数组,执行上述操作是“太多的工作”。当然可以轻松完成,但我希望我的核心数据天真仅仅意味着我不知道如何在一行中完成此操作。

如何做到这一点?

谢谢!

编辑要求澄清:

假设 Person 实体与 Vehicles 实体具有一对多关系。 假设 Vehicles 实体有一个属性“color”。

我想要属于所有人的所有车辆的所有颜色的 NSSet。



Best Answer-推荐答案


如果我理解正确,并假设 A-->B 关系具有反向 B-->A 关系,名为 a,您的问题可以表述为:All B.section 的不同值,其中关系 B.a 不是 nil。这将为与某些 A 关联的每个 B 获得 B.section 的每个不同值。

在这种情况下,您需要以下内容:

// Fetch B
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName"B"];
// Fetch B that's related to an A
NSPredicate *predicate = [NSPredicate predicateWithFormat"a != nil"];
[request setPredicate:predicate];

// Fetch distinct values of "section", return values as NSDictionary
[request setResultType:NSDictionaryResultType];
[request setReturnsDistinctValues:YES];
[request setPropertiesToFetch["section"]];

执行它,你会得到一个 NSDictionary 数组。字典有一个名为 section 的键,对应于 B.section。仅包含不同的值。

关于ios - 如何获取所有对象A的一对多关系B的所有属性的NSSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18477540/

回复

使用道具 举报

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

本版积分规则

关注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