如何使用NSSet正确编码核心数据

时间:2013-04-30 22:56:30

标签: ios core-data tableview nspredicate drilldown

我在iOS编程和核心数据方面比较新,所以如果这是一个愚蠢的问题,请原谅我。在我的项目中,我有两个实体。实体(1)被命名为“医生”,实体(2)被命名为“患者”。医生和患者之间的关系被命名为“患者”。倒数称为“医生”。我和医生之间有一对多的关系。这些实体已经分类。我有根视图控制器显示医生姓名。我希望能够选择医生的细胞并在受控制的视图控制器上显示他的患者。他的病人被纳入NSSet。我在这里难过。我是否在segue代码中传递了NSSet,或者我是否在获取请求中使用谓词来仅获取适用的患者姓名?您可以提供的任何代码示例都将非常感激。

1 个答案:

答案 0 :(得分:1)

只需将用户点击单元格时获得的Doctor对象传递给详细控制器即可。然后在详细控制器中使用doctor.patients(NSSet)。这是最简单的选项,如果您不对数据进行任何更改,它将很有效。您可能在表格视图中显示患者,因此您需要使用NSSortDescriptor在显示患者之前组织患者(然后他们将在数组中并使用objectAtIndex:)。

如果您要更改数据,它仍然有用,但您需要以某种方式了解更改,以便更新用户界面。

如果您已经有一个提取的结果控制器,那很好,并会为您监控更改。在这种情况下,请使用谓词格式的doctor

[NSPredicate predicateWithFormat:@"doctor = %@", self.doctor];

无论哪种方式,都将医生对象传递给新的视图控制器。