如何创建诸如viewDidLoad之类的替代功能?

时间:2018-10-07 03:10:29

标签: swift

我只是想知道如何创建像viewDidLoad这样的函数,当我创建作为UIViewController的子类的类时始终存在。所以我创建了一个类名SnapKitView。然后,我想实现的是每次创建一个类作为SnapKitView的子类时,我的override awakeFromCode函数始终存在。

例如:

class AuthView: SnapkitView {

     //this override func must be always present
     override func awakeFromCode() {

     }     

}

我想要实现的是,每当我子类化SnapKitView时,override awakeFromCode就已经像override viewDidLoad一样被预先填充。那可能吗?

1 个答案:

答案 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?