Я заметил, что если вы загружаете связанные представления из пера, вы должны переопределить initWithCoder, если вы хотите добавить код инициализации, потому что назначенный инициализатор не вызывается (что имеет смысл), а если нет загрузить представление из кончика, затем тот же код должен быть выполнен в назначенном инициализаторе.
Таким образом, для обработки обоих случаев вам нужен один и тот же код инициализации в обоих методах.
Это лучшее решение, которое я когда-либо придумал, но мне интересно, есть ли какой-нибудь более традиционный способ сделать это. Этот код находится в подклассе UITableViewCell, но на самом деле это может быть любой UIView:
/*
* Seems like there should be a standard method for this already.
*/
- (void)didFinishInitializingOrUnacrhiving {
/*** Do stuff that makes the most sense to do in an initializer. ***/
}
- (id)initWithCoder:(NSCoder *)aDecoder {
if (self = [super initWithCoder:aDecoder]) {
[self didFinishInitializingOrUnacrhiving];
}
return self;
}
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
[self didFinishInitializingOrUnacrhiving];
}
return self;
}
Так есть мысли по этому поводу? Это "правильный способ" делать что-то, есть ли здесь потенциальные подводные камни, или я просто что-то упускаю?