私はCustomTableViewCell : UITableViewCell
と@property(nonatomic, retain) Model* model;
というカスタムを持っています。 1つのビュー(適切に設定されたクラスと再利用識別子を持つセル)を持つxibファイルもあります。私のカスタムセルクラスでは、- init
実装があります:nib発行からカスタムセルをロード
- (id)init
{
NSArray* array = [[NSBundle mainBundle] loadNibNamed:@"CustomTableViewCell" owner:self options:nil];
CustomTableViewCell* cell = [[array firstObject] retain];
self = cell;
self.model = [[Model alloc] init] autorelease];
self.model.someString = @"foo";
// here I can access self.model with no problem
return self;
// after method return, self.model refers to 0x0
}
私の問題はある... - init
の復帰後、self.model
がnilです。セルは動作していますが、model
はありません。そして私は理由を知らない。何か案は?私は、私の- init
はコーシャではありません...私は見つけた
EDIT
は、モデルが復帰した後に何もnilでないが、テーブルビューのデータソースメソッドが呼び出されたときだと思います。また、テーブルビューは、その時に私を完全に驚かせる0x0を参照します。全く変わった!ありがとう、私はコードで自分のセルを行うつもりです...
self.modelに問題なくアクセスできると言えば、どういう意味ですか?ロギング時やデバッガで有効なオブジェクトが表示されるか、initメソッドからランタイムエラーが発生しないことがわかりますか? – jrturton
あなたのセルに "モデル"を保持させるのは珍しいパターンです - 明らかに私はあなたのアプリケーションのコンテキストで何がわからないのですが、それがセルに表示されたデータを参照するならばこれは細胞の再利用のため、物事を行う通常の方法。あなたのセルは通常、テーブルビューのデータソースcellforrowatindexpathメソッド中にカスタムxibからロードされ、その時点でそれに渡されるすべてのデータがロードされます。 – jrturton