核心数据遍历具有 NSArrayController 内容集的实体?

Posted

技术标签:

【中文标题】核心数据遍历具有 NSArrayController 内容集的实体?【英文标题】:Core Data traversing entities with an NSArrayController content set? 【发布时间】:2011-11-02 03:12:44 【问题描述】:

我在 Core Data 应用程序中有 3 个实体:

Projeto > Servico > Sessao (这些关系像往常一样命名)。

Projeto.servico(对许多 Projeto --> Servico)

Servico.projeto(与一个 Servico--> Projeto 相反)

Servico.sessaoDoServico(对许多 Servico --> Sessao)

Sessao.servicoDaSessao(反一 Sessao --> Servico)

每个实体都连接到一个数组控制器,例如 Apple Docs 中的“部门和员工”。它在典型的 Master - details 配置中运行良好。

现在我想拥有来自选定项目的所有会话。 (我和 Sessao 和 Projeto 没有关系)

我正在尝试绑定 SessionArrayController 内容集以过滤会话,但没有成功。

我怎样才能拥有选定项目的所有会话?

我为会话类创建了一个属性,返回一个 NSSet,我可以打印所需的会话,但我不知道如何通过绑定来做到这一点。

-(NSSet *)sessoesDoProjeto
NSSet *allSessions = [self.projeto.servico valueForKey:@"sessaoDoServico"];
NSLog(@"allSessions %@",allSessions);
return allSessions;

我可以用上面的 NSSet 创建一个 NSArrayController 吗?

任何帮助将不胜感激

【问题讨论】:

【参考方案1】:

我找到了解决方案,所以我为其他有同样问题的人发帖。

我将 SessionArrayController 的内容数组(不是内容集)绑定到:

ServicoArrayController_by_Project.arrangedObjects.@unionOfSets.sessaoDoServico

它就像一个魅力!

【讨论】:

以上是关于核心数据遍历具有 NSArrayController 内容集的实体?的主要内容,如果未能解决你的问题,请参考以下文章

核心数据 - 遍历 NSManagedObject 的属性

分段错误(核心转储)c

核心数据 - 使用同一字段获取所有实体

SwiftUI - 将核心数据导出到 CSV 文件 - 无法遍历实体

数组的动态分配

循环遍历具有数据属性的表行