核心数据 - 发射故障

时间:2011-10-12 16:40:40

标签: core-data

如果我有实体部门和员工,在取得所有部门后,我可以看到员工仍有过错。我的目标是让一组员工与某个部门相关。根据我在文档中看到的内容,我不需要获取它,因为在必要时会触发错误。我尝试了下面这个,但是这个集合仍然是空的,NSLog显示员工仍然是错的:

Department *dep = (Department *)[self.fetchedDepController objectAtIndexPath:indexPath];
NSSet *employeesSet = [dep employee];
NSLog(@"Department: %@", dep);

我错过了什么?

1 个答案:

答案 0 :(得分:0)

在您访问员工的财产之前,它们将是错误的。例如:

NSSet *employeesSet = [dep employee];
for (Employee *employee in employeesSet) {
    float pay = 0.0;
    for (Day *day in employee.timecard) { // relationship fires fault
        float hours = (day.clockout - day.clockin) / 60.0 / 60.0;
        if (hours > 8.0) pay += employee.payrate * (8.0 + (hours - 8.0) * 1.5); // attribute would too
        else pay += employee.payrate * hours;
    employee.pay = pay; // so would setting an attribute

因为为什么所有的例子都必须是受薪雇员?

这将解雇所有员工的错误。

但是你通常不需要担心它,因为任何故障对象都应该在你需要的时候停止出现故障。但是,我也不相信。如果你设置了awakeFromFetch和didTurnInto错误,那么你可能会对某个对象何时改变其性质有所依赖。如果你只是按照他们想要的那样做事情,那么你没有问题,但是文档并不完全清楚什么是预期,允许和预期的限制。