Каждый класс должен иметь назначенный инициализатор .Если UIImageView
следует этому соглашению (должно быть, но я его не проверял), то вы обнаружите, что вызов -init
в итоге вызовет -initWithFrame:
.
Если вы хотите убедиться, что вашМетод init запускается, все, что вам нужно сделать, это переопределить назначенный инициализатор родительского класса, либо так:
-(id) initWithFrame:(CGRect)frame;
{
if((self = [super initWithFrame:frame])){
//do initialisation here
}
return self;
}
Или вот так:
//always override superclass's designated initialiser
-(id) initWithFrame:(CGRect)frame;
{
return [self initWithSomethingElse];
}
-(id) initWithSomethingElse;
{
//always call superclass's designated initializer
if((self = [super initWithFrame:CGRectZero])){
//do initialisation here
}
return self;
}