initwithstyle: reuseIdentifier: не вызывается - PullRequest
46 голосов
/ 15 декабря 2011

Я создаю свой собственный UITableViewCell для использования в качестве бэкенда ячейки прототипа. В моем классе я переопределяю метод initwithstyle:reuseIdentifier:, чтобы выполнить некоторую пользовательскую инициализацию, но мой инициализатор не вызывается. У меня есть точка останова на первой строке внутри нее, а также точка останова на dequeueResusableCellWithIdentifier:. Вызывается метод dequeueResusableCellWithIdentifier:, который возвращает инициализированную ячейку, но точка останова в initwithstyle:reuseIdentifier: не достигнута. Любая помощь будет великолепна.

Ответы [ 3 ]

83 голосов
/ 15 декабря 2011

Если ваша ячейка создается из прототипа раскадровки (который вы объявили как пользовательский класс в IB), то она не будет создана с initWithStyle..., а initWithCoder: вместо этого, как любой другой объект, загруженный из пера,Если у вас есть какой-либо установочный код, он должен быть там или в awakeFromNib.

12 голосов
/ 07 сентября 2012

С включенной раскадровкой все меняется.Это метод, который вызывается.

-(id)initWithCoder:(NSCoder *)aDecoder {
    if ( !(self = [super initWithCoder:aDecoder]) ) return nil;

    // Your code goes here!

    return self;
}
0 голосов
/ 30 августа 2013

Если вы используете StoryBoarsd, то UITableViewContoller не будет вызывать initWithStyle, замените его на initWithCoder, теперь он будет работать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...