Swift中初始化方法的顺序介绍

 更新时间:2015年01月09日 12:53:10   投稿:junjie  
这篇文章主要介绍了Swift中初始化方法的顺序介绍,本文介绍的是了类的初始化方法,需要的朋友可以参考下

与 Objective-C 不同,Swift 的初始化方法需要保证类型的所有属性都被初始化。所以初始化方法的调用顺序就很有讲究。在某个类的子类中,初始化方法里语句的顺序并不是随意的,我们需要保证在当前子类实例的成员初始化完成后才能调用父类的初始化方法:

复制代码 代码如下:

class Cat {
    var name: String
    init() {
        name = "cat"
    }
}

class Tiger: Cat {
    let power: Int
    override init() {
        power = 10
        super.init()
        name = "tiger"
    }
}


一般来说,子类的初始化顺序是:

1.设置子类自己需要初始化的参数,power = 10
2.调用父类的相应的初始化方法,super.init()
3.对父类中的需要改变的成员进行设定,name = "tiger"

其中第三步是根据具体情况决定的,如果我们在子类中不需要对父类的成员做出改变的话,就不存在第 3 步。而在这种情况下,Swift 会自动地对父类的对应 init 方法进行调用,也就是说,第 2 步的 super.init() 也是可以不用写的 (但是实际上还是调用的,只不过是为了简便 Swift 帮我们完成了)。这种情况下的初始化方法看起来就很简单:

复制代码 代码如下:

class Cat {
    var name: String
    init() {
        name = "cat"
    }
}

class Tiger: Cat {
    let power: Int
    override init() {
        power = 10
        // 虽然我们没有显式地对 super.init() 进行调用
        // 不过由于这是初始化的最后了,Swift 替我们完成了
    }
}

相关文章

  • Swift语言中的一些访问控制设置详解

    Swift语言中的一些访问控制设置详解

    这篇文章主要介绍了Swift语言中的一些访问控制设置详解,是Swift入门学习中的基础知识,需要的朋友可以参考下
    2015-11-11
  • swift使用SDPhotoBriwser浏览图片教程

    swift使用SDPhotoBriwser浏览图片教程

    这篇文章主要为大家介绍了swift如何使用SDPhotoBriwser浏览图片的教程示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-10-10
  • swiftui开发之padding默认值设置详解

    swiftui开发之padding默认值设置详解

    这篇文章主要为大家介绍了swiftui开发之padding默认值设置详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • Swift 并发修改Sendable 闭包实例详解

    Swift 并发修改Sendable 闭包实例详解

    这篇文章主要为大家介绍了Swift 并发修改Sendable 闭包实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • swift闭包和OC block类型的使用

    swift闭包和OC block类型的使用

    这篇文章主要介绍了swift闭包和OC block类型的使用,需要的朋友可以参考下
    2017-08-08
  • Swift中初始化init的方法小结

    Swift中初始化init的方法小结

    Swift有着超级严格的初始化方法,不仅强化了designated初始化方法的地位,所有不加修饰的init方法都需要在方法中确保非Optional的实例变量被赋值初始化,下面这篇文章主要给大家介绍了关于Swift中初始化init的相关资料,需要的朋友可以参考下。
    2018-04-04
  • 深入理解swift变量和函数

    深入理解swift变量和函数

    Swift 函数用来完成特定任务的独立的代码块。这篇文章主要介绍了swift变量和函数的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-08-08
  • 用SwiftUI实现3D Scroll滚动效果的实现代码

    用SwiftUI实现3D Scroll滚动效果的实现代码

    这篇文章主要介绍了用SwiftUI实现3D Scroll效果的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习
    2020-04-04
  • swift3.0指纹解锁的实现方法

    swift3.0指纹解锁的实现方法

    这篇文章主要为大家详细介绍了swift3.0指纹解锁的实现方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • swift5.3 UIColor使用十六进制颜色的方法实例

    swift5.3 UIColor使用十六进制颜色的方法实例

    这篇文章主要给大家介绍了关于swift5.3 UIColor使用十六进制颜色的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10

最新评论