0

私は2つのエンティティを持っています。アスリートとエヴァル。Athlete は Eval と対多の関係にあります。アスリートは複数の評価を受けることができますが、評価はアスリートを 1 人しか持てません。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

coreData では、「関係」を参照するためにインデックスを使用しません

テーブル データ ソースでどの「アスリート」が選択されたかがわかります。

セルをタップした後、その「アスリート」の「評価」を取得します

Athletes で配列を使用している場合:

- (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 に答える