Прототип клетки с пользовательским классом не запускает init? - PullRequest
2 голосов
/ 02 марта 2012

Я довольно новичок в Objective-C и у меня есть вопрос, касающийся ячеек-прототипов.

У меня есть таблица с настраиваемыми ячейками, и она прекрасно работает.

Теперь у меня есть и в моемПользовательский класс ячейки переопределяет -(id)init и -(id)initWithStyle: reuseIdentifier:

Если я проверяю класс в ячейке, это явно мой пользовательский класс, но ни один метод init никогда не вызывается.

Такон создает их для меня, но каким-то образом избегает стрельбы -(id)init, что мне кажется странным.

Думаю, я мог бы инициировать их самостоятельно, но мне кажется действительно странным, что они могут существовать без создания?

Спасибо!

Ответы [ 3 ]

18 голосов
/ 30 апреля 2012

Если это клетка-прототип из раскадровки.- (id)initWithCoder: вызывается.Поэтому вам нужно переопределить:

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

  return self;
}

Это верно для всего, что пробуждается от раскадровки.

1 голос
/ 02 марта 2012

Вы загрузили эти клетки из XIB?Если это так, попробуйте использовать awakeFromNib.

0 голосов
/ 02 марта 2012

Метод, который вы должны использовать для инициализации пользовательской ячейки:

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

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

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