交叉模型获取属性

时间:2011-08-19 14:41:07

标签: objective-c ios core-data

如何在核心数据模型中实现跨模型获取属性?简单地说,假设我有两个模型 - 描述部门层次结构的CompanyStructure模型,以及描述所有员工的Employee模型。我如何将员工的部门设置为获取的财产?

我发现了类似的问题here。这是对我面临的问题的一个很好的描述:

  

当我在文档实体中为状态设置一个fetched属性时(在   Xcode建模器)它需要目标集 - 但是,   目标弹出窗口仅显示当前模型中的实体。我是什么   想(我认为)是一个谓词:

     

State.id == $FETCH_SOURCE.state_id

     

以便将文档实体与全局定义的状态相关联   另一个模型中的实体。

BTW,我不知道$ FETCH_SOURCE或$ FETCH_ANYTHING_ELSE,所以我真的不明白上面引用段中的代码块。我知道我不能为员工的部门提取属性设置实体,因为它们是在不同的模型中。

编辑 - 将两个数据模型合并为一个不是一种选择。

1 个答案:

答案 0 :(得分:3)

提取的属性是模型的一部分,因此根据定义它们不是交叉模型。如果要引用多个模型,则必须在代码中执行此操作。此外, Employees Departments 之间的连接定义只能在模型中完成,除非您使用自己的UID,从而绕过模型隐喻。

他们执行类似的任务,我向我的类中添加了额外的.h和.m文件,例如ClassName+Additions.h,并将“属性”声明为可以像{{1}这样的属性调用的方法}。在这些文件中,我可以[smith department]来自其他模型的所有必需类,并维护单独的托管对象上下文。