0

我有 2 个实体。运动员和评估。Athlete 与 Eval 有一对多的关系。一个 Athlete 可以有多个 Eval,但一个 Eval 只能有 1 个 Athlete。第一个为 Athlete 显示表格视图控制器的视图控制器。它显示所有运动员。当您单击一个运动员时,您将进入一个表格视图控制器,该控制器显示该运动员的所有评估。如何在我的 Athlete 表格视图中显示 evalArray[0] 顶部的 eval 属性?

这是我到目前为止所拥有的:

allEvals.h

Eval *mostRecentEval = evalArray.firstObject;
AllAthletes *allAthletes = [self.storyboard instantiateViewControllerWithIdentifier:@"allAthletes"];
allAthletes.evalLastUpdated = mostRecentEval.date_recorded;

NSLog(@"%@",mostRecentEval.date_recorded);

当我记录它时,它会正确显示属性,但是当我转到所有运动员时,当视图出现时我再次记录它,它会显示(null)。谁能告诉我为什么?

4

3 回答 3

1

在您的 Athletes 视图控制器中,tableView:cellForRowAtIndexPath:对于Athlete该行,获取他们的Eval对象并按日期对它们进行排序(但是您正在构建 eval 数组),然后获取最新的并使用它来填充您的运动员表视图上的标签细胞。

于 2013-08-13T03:57:15.230 回答
0

那么,您如何在所有 Eval 的表视图中订购 Eval?只需将顺序保持在 anNSArray然后 in 中tableView:didSelectRowAtIndexPath:,从索引路径中获取行索引,然后在NSArray. 等等,你有用户点击的 Eval!

于 2013-08-13T03:08:21.860 回答
0

在 coreData 你不使用索引来引用你的“关系”

您将知道在您的表格数据源中选择了哪些“运动员”,

因此,在点击单元格后,获取该“运动员”的“评估”

如果您对运动员使用数组:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
 Athlete *selectedAthlete = [self.AthletesArray objectForIndex: indexPath.row];
 //deal with push new view controller, send the selectedAthlete
}

那么当你想为那个运动员获得你的评估时

用你的属性做一个谓词 = selectedAthlete

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(athleteRelation =%@)", selectedAthlete];

现在是所选运动员的评估

祝你好运

于 2013-08-13T03:10:46.777 回答