Core data 如何在iOS 8中从核心数据的关系中获取数据?

Core data 如何在iOS 8中从核心数据的关系中获取数据?,core-data,Core Data,我有两个实体:员工和部门。两者都与关系有关,即1对M和M对1。Dept具有名为MANAGERID的属性,该属性表示作为该部门经理的员工Id 现在我需要取DeptName和经理的名字。如何编写谓词格式字符串? 注意:我使用的是iOS 8.3,Xcode 6.3和Swift 1.2 提前谢谢 如果按照中所述的常规设置,则不需要ID。访问员工所在部门的步骤 let department = employee.department 让一个部门的所有员工 let employees = departme

我有两个实体:员工和部门。两者都与关系有关,即1对M和M对1。Dept具有名为MANAGERID的属性,该属性表示作为该部门经理的员工Id

现在我需要取DeptName和经理的名字。如何编写谓词格式字符串? 注意:我使用的是iOS 8.3,Xcode 6.3和Swift 1.2


提前谢谢

如果按照中所述的常规设置,则不需要ID。访问员工所在部门的步骤

let department = employee.department
让一个部门的所有员工

let employees = department.employees // returns NSSet or [Employee]
遵循对象图的设计模式,而不是在部门对象中保留经理id,您应该与经理建立一对一的关系

let manager = department.manager // returns an Employee
这意味着您需要与经理建立单独的关系:

Department.employees <----->> Employee.department
Department.manager   <------> Employee.managedDepartment

还请注意,在核心数据中,像MANGAERID这样的all caps属性名称是非法的。

Hi,我使用all caps只是为了高亮度地照亮属性。因为经理也是员工,所以他的数据也是员工实体中的记录。无论如何,一个部门将只有一个经理,因此我将managerId作为实体部门中的属性。在从部门获取部门名称的同时,我还试图获取部门经理employeeName。希望您理解。我很抱歉没有抓到您。您的意思是说部门和员工之间的关系将重置为1对1而不是1对多,还是说我定义了另一个具有departmentId和employeeId属性的中间实体经理?我对iOS编码比较陌生。请容忍我。不,你需要在现有关系之外有第二段关系。请看我答案的编辑。非常感谢。我根据需要调整了我的数据模型,数据也需要按照实体和关系存储,这样在swift中从关系中获取数据就方便多了。再次感谢您。我认为SQLite或多或少像ORDBMS一样管理数据