В родительском классе, в данном случае SnapKitView
, определите функцию обычно следующим образом:
func awakeFromCode() {
// Put any functionality here that applies to ALL subclasses
}
Затем в каждом подклассе, например AuthView
, переопределите функцию, используя одну и ту же сигнатуру функции (то же имя и параметры, если они есть)
override awakeFromCode() {
// This will call the original parent function and execute anything in its function body
super.awakeFromCode()
// Then do anything you want this subclass in particular to do here
}
super.awakeFromCode()
вызовет реализацию родительской функции этой функции, и вы можете поместить ее либо до, после или между добавленной функциональностью подкласса в зависимости отв каком порядке вы хотите, чтобы он выполнялся.
РЕДАКТИРОВАТЬ: Кроме того, если одному из ваших подклассов не нужно добавлять какие-либо функции помимо того, что делает родительская функция, вы можете просто вызвать родительскую функцию в подклассе, как обычно:awakeFromCode()
без ссылки super
.Вам нужно ссылаться на super
, только если вы переопределите ее и хотите вызывать только родительскую функцию, а не подкласс.
Возможно, вас заинтересует required
наследование функции, о котором вы можете прочитать подробнее здесь: Что означает ключевое слово required в Swift?