如何在 Swift 3.1 中 override方法 initialize方法

之前喵神在他的书的第二版里有提到 override方法 initialize 方法来做 Method Swizzling 但在第三版更新的时候删除了这部分内容,因为喵神觉得应该用更加 swift 化的方法来做

现在求问改怎么改或者怎么重写財能继续使用 Method Swizzling 呢?

画控件、连线等操作都与OC下的非常类似,这里不赘述

但是问题来了,xib画好了连线也连好了,生成的Controller却总是空白一片为什么呢?

原因是Swift下,子类不会默认继承父類的初始化方法导致子类相关初始化方法缺失。

3.重写无参数init方法

前面我们重写了init(nibNameOrNil, bundleOrNil)方法但如果要使用,那么不得不每次都提供两个参数这是很麻烦的事。

在OC里如果直接使用new方法生成一个Controller,无需额外参数它就可以自动关联xib文件。在Swift里可以通过增加一个便利初始化方法达到此效果,代码如下:

//3.重写无参数初始化方法自动调用xib文件

写完上述代码后,编译器会报错提示要加入一段代码才行。双击错误提示编译器会自动加入以下代码。当然你也可以亲手打进去:

//4.编译器提示需要加入的代码

我要回帖

更多关于 override方法 的文章

 

随机推荐