Я создаю свой собственный UITableViewCell
для использования в качестве бэкэнд прототипа. В моем классе я переопределяю метод initwithstyle:reuseIdentifier:
для выполнения некоторой пользовательской инициализации, но мой инициализатор не вызывается. У меня есть точка останова на первой строке внутри нее, а также точка останова на dequeueResusableCellWithIdentifier:
. Вызывается метод dequeueResusableCellWithIdentifier:
, и он возвращает инициализированную ячейку, но точка останова в initwithstyle:reuseIdentifier:
не достигается. Любая помощь будет отличной.
Initwithstyle: reuseIdentifier: не вызывается
Ответ 1
Если ваша ячейка создается из прототипа раскадровки (который вы объявили как пользовательский класс в IB), то она не будет создана с помощью initWithStyle...
, а initWithCoder:
вместо этого, как и любой другой объект, загруженный из ниба, Если у вас есть какой-либо установочный код, он должен быть там или в awakeFromNib
.
Ответ 2
При использовании раскадровки все меняется. Это метод, который вызывается.
-(id)initWithCoder:(NSCoder *)aDecoder {
if ( !(self = [super initWithCoder:aDecoder]) ) return nil;
// Your code goes here!
return self;
}
Ответ 3
Если вы используете StoryBoarsd, тогда UITableViewContoller не будет вызывать initWithStyle вместо initWithCoder, он будет работать сейчас