2

私はobjective-cにかなり慣れていないので、プロトタイプセルについて質問があります。

カスタムセルを含むテーブルビューがあり、うまく機能します。

これで、カスタム セル クラスもオーバーライドさ-(id)initれ、-(id)initWithStyle: reuseIdentifier:

セルでクラス チェックを行うと、それは明らかにカスタム クラスのものですが、どちらの init メソッドも呼び出されません。

それで、それは私のためにそれらを作成しますが、どういうわけか私に-(id)initは奇妙に思える発射を回避します。

私は自分でそれらを初期化できると思いますが、それらが作成されずに存在できるのは本当に奇妙に思えますか?

ありがとうございました!

4

3 に答える 3

18

ストーリーボードからのプロトタイプセルの場合。- (id)initWithCoder:呼び出されます。したがって、以下をオーバーライドする必要があります。

- (id)initWithCoder:(NSCoder *)coder
{
  self = [super initWithCoder:coder];
  if (self) {
       //custom stuff here
  }

  return self;
}

これは、ストーリーボードから目覚めたものすべてに当てはまります。

于 2012-04-30T15:49:14.020 に答える
1

これらのセルをxibからロードしましたか?awakeFromNibその場合は、代わりに使用してみてください。

于 2012-03-02T15:45:44.857 に答える
0

カスタム セルの初期化に使用するメソッドは次のとおりです。

   -(id)initWithFrame:(CGRect)frame reuseIdentifier:(NSString *)reuseIdentifier{

    if(self = [super initWithStyle:UITableViewCellStyleDefault reuseIdentifier:reuseIdentifier]){

    }
    return self;    
}
于 2012-03-02T11:00:10.983 に答える