Initwithstyle: reuseIdentifier: не вызывается

Я создаю свой собственный UITableViewCell для использования в качестве бэкэнд прототипа. В моем классе я переопределяю метод initwithstyle:reuseIdentifier: для выполнения некоторой пользовательской инициализации, но мой инициализатор не вызывается. У меня есть точка останова на первой строке внутри нее, а также точка останова на dequeueResusableCellWithIdentifier:. Вызывается метод dequeueResusableCellWithIdentifier:, и он возвращает инициализированную ячейку, но точка останова в 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, он будет работать сейчас