Почему метод init пользовательской ячейки таблицы на основе пера не вызывается

У меня есть ячейка табличного представления на основе пера, которую я создал в Интерфейсном конструкторе. Я установил класс ячейки табличного представления в FooTableViewCell который простирается от UITableViewCell,

В FooTableViewCell Я переопределяю метод init следующим образом:

-(id)init{

    if ((self = [super init])){
      // My init code here
    }
    return self;
}

Теперь я ожидал, что меня вызовут, когда он будет создан. Однако табличное представление отображается, но метод никогда не вызывается.

Я мог бы обойти это, но я хотел бы полностью понять это, и для меня не ясно, как объект может жить без init вызываемый метод.

2 ответа

Решение

При неархивированной инициализации происходит несколько иной путь.

Вместо -(id)init будучи призванным -(id)initWithCoder:(NSCoder*)aDecoder будет называться. На данный момент розетки не подключены, если вам нужен доступ к розеткам, которые вы можете переопределить -(void)awakeFromNib который будет вызван после того, как объект был подключен.

Когда объект загружается из nib-файла, вызывается его метод -awakeFromNib - вы можете поместить туда свой код инициализации:

- (void)awakeFromNib{
   // Init code
}
Другие вопросы по тегам