I have a nib-based table view cell which I created in Interface builder. I set the class of the table view cell to FooTableViewCell which extends from UITableViewCell.
In FooTableViewCell I override the init method like this:
-(id)init{
if ((self = [super init])){
// My init code here
}
return self;
}
I now expected that my gets called, when it is being instantiated. However the table view gets displayed but the method is never called.
I could work around this but I would like to fully understand it and for me it’s not clear how an object can come to live without the init method being called.
When being unarchived initialization goes through a slightly different path.
Instead of
-(id)initbeing called-(id)initWithCoder:(NSCoder*)aDecoderwill be called. At this point outlets aren’t hooked up, if you need access to the outlets you can override-(void)awakeFromNibwhich will be called after the object has been hooked up.