8

アプリをコンパイルするときに非常に奇妙なエラーが発生しました。下の図のようなものです。何が起こっているのか知っている人はいますか?

ここに画像の説明を入力

ログのエラー:

エラー: コンパイルに失敗しました。

Underlying Errors:
    Description: Couldn't compile connection: <IBCocoaTouchOutletConnection:0x400d6f420 <IBProxyObject:0x400d6e080> => nameShow => <IBUILabel: 0x400c7e0c0>
    Description: Couldn't compile connection: <IBCocoaTouchOutletConnection:0x400d71200 <IBProxyObject:0x400d6e080> => catShow => <IBUILabel: 0x400bf9280>
    Description: Couldn't compile connection: <IBCocoaTouchOutletConnection:0x400d6ffc0 <IBProxyObject:0x400d6e080> => numShow => <IBUILabel: 0x400be0380>
4

2 に答える 2

18

問題は、プロトタイプ セルにリンクする IBOutlets があることです。プロトタイプ セルはまさにそれであることに注意してください: プロトタイプ。したがって、それぞれのインスタンスを複数持つことができます。したがって、Xcode は IBOutlet 変数をリンクするインスタンスを認識できません。

プロパティを割り当てるには、 cellForRowAtIndexPath 内でセルがインスタンス化されるまで待つ必要があります

于 2012-05-17T12:56:55.370 に答える
2

これが役立つ場合があります。重要なのは、Storyboard アウトレットの IB で Tag 値を設定する必要があることです。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

  UITableViewCell *cell = [[UITableViewCell alloc] init];

  cell = [tableView dequeueReusableCellWithIdentifier:@"LogRecordCell"];

  cmiJournal = (CMIJournal *)[fetchedResultsController objectAtIndexPath:indexPath];

  UILabel *useJName = (UILabel *)[cell.contentView viewWithTag:101];
  UILabel *useJTime = (UILabel *)[cell.contentView viewWithTag:102];
  UITextView *useJRecord = (UITextView *)[cell.contentView viewWithTag:103];

  useJName.text = cmiJournal.cmiJournalName;
  useJTime.text = fnlDate;
  useJRecord.text = cmiJournal.cmiJournalRecord;

  return cell;
}
于 2012-08-26T15:49:05.270 に答える