2

UITableCellというサブクラスがありHistoriqueCellます。このクラスにはアウトレット (4 つのラベル) があります。を持つUIViewController( HistoriqueViewController) がありUITableViewます。このテーブルには、 でサブクラス化されたプロトタイプ セルがありHistoriqueCellます。そのプロトタイプ セルの 4 つのラベルは、HistoriqueCell.hのアウトレットにリンクされています。ただし、これらのセルのすべてのインスタンスには、常に未割り当てのアウトレットがあります。私の同僚のバージョンは完全に機能しており、まったく同じコードです (git をバイパスし、コピーしたプロジェクトを彼の USB スティックからロードしただけで、git ではないことを 100% 確認しました。 .

これは、問題がコードにあるのではなく、xcode 構成にあると思われます。ローカライズされたストーリーボードが原因で、以前にも同様の問題があったことを覚えています。簡単に言えば、フランス語版はロードされ、コンセントが接続されていませんでした。コンセントを配置した英語版とは対照的です。フランスのストーリーボードが使用されたとき、私が今抱えている問題のようにアウトレットは割り当てられていませんでしたが、私のストーリーボードはローカライズされていません。

これは、割り当てられていないアウトレットを示すデバッグです

これがストーリーボードです。.m には @synthesize もあります。

セル使用例:

問題に本当にイライラしています。問題が見つからないようです。お願いします、何か手がかりがあれば、私はすべて耳を傾けます!

4

2 に答える 2

1

これは、nib ファイルが自動的にロードされないためです。

を呼び出して手動で nib ファイルをロードする必要があります[[NSBundle mainBundle] loadNibNamed:@"HistoriqueCell" owner:self options:nil]

または、次のように nib オブジェクトをテーブル ビューに登録することをお勧めします。

UINib *cellNib = [UINib nibWithNibName:@"HistoriqueCell" bundle:nil];
[self.tableView registerNib:cellNib forCellReuseIdentifier:@"HistoriqueCell"];

そして今、dequeueReusableCellWithIdentifier:テーブル ビューを呼び出すと、再利用可能なセルが返されるか、セルの新しいインスタンスが作成されて nib が読み込まれます。そして、このチェックはもう必要ありません:

if (cell == nil) {
    ...
}
于 2013-10-01T02:47:51.080 に答える