Почему метод 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
}