Каждый класс Cocoa Touch (и Cocoa) имеет назначенный инициализатор;для UIView
, как указано в этой документации , этот метод равен initWithFrame:
.В этом конкретном случае вам нужно только переопределить initWithFrame
;все остальные вызовы будут каскадно падать и попадать в этот метод, в конце концов.
Это выходит за рамки вопроса, но если в итоге вы создадите пользовательский инициализатор с дополнительными параметрами, вы должны убедиться, что назначенный инициализатордля суперкласса при назначении self
, например:
- (id)initWithFrame:(CGRect)theFrame puzzle:(Puzzle *)thePuzzle title:(NSString *)theTitle {
self = [super initWithFrame:theFrame];
if (self) {
[self setPuzzle:thePuzzle];
[self setTitle:theTitle];
[self initHelper];
}
return self;
}