我只是想知道如何创建像viewDidLoad这样的函数,当我创建作为UIViewController的子类的类时始终存在。所以我创建了一个类名SnapKitView。然后,我想实现的是每次创建一个类作为SnapKitView的子类时,我的override awakeFromCode
函数始终存在。
例如:
class AuthView: SnapkitView {
//this override func must be always present
override func awakeFromCode() {
}
}
我想要实现的是,每当我子类化SnapKitView时,override awakeFromCode
就已经像override viewDidLoad
一样被预先填充。那可能吗?
答案 0 :(得分:1)
在父类中,在这种情况下为serverlessrepo
,通常像这样定义函数
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
函数继承感兴趣,您可以在这里了解更多信息:What does the "required" keyword in Swift mean?