Недавно я обнаружил пример webrtc-ios от Github. Пока я просматривал проект, я заметил, что класс VideoView использует статический метод, и я не уверен, что это необходимо или нет.
VideoView является подклассом UIView и переопределяет два метода init, initWithFrame:
и initWithCoder:
. Я знаю, что это нормально, чтобы переопределить эти методы init, а затем использовать некоторый метод для настройки другого материала, например - (void)setup;
.
Но класс VideoView использует статическую функцию, static void init(VideoView *self)
. Вопрос в том, есть ли преимущества при использовании статической функции против обычного метода ObjC?
Код в классе VideoView выглядит следующим образом:
-(id)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
init(self);
}
return self;
}
-(id)initWithCoder:(NSCoder *)aDecoder {
if (self = [super initWithCoder:aDecoder]) {
init(self);
}
return self;
}
static void init(VideoView *self) { ... }