美文网首页iOS Developer
iOS9 with Swift 类的构造器(四)

iOS9 with Swift 类的构造器(四)

作者: 小松树先生 | 来源:发表于2016-07-28 20:03 被阅读66次

可失败构造器(Failable initializers):

直到一个可失败构造器完成了它所有的初始化任务,它才可以:return nil。因此,比如一个可失败子类构造器必须在所有的子类属性被初始化和调用super.init( ) 之后才可以return nil。(这里有一个有趣的讽刺:在销毁实例之前,构造器必须完成建立实例;但是,为了保证父类有一个清晰的的初始化,这个工作又是必须的。)

如果一个被可失败构造器调用的构造器是可失败的,这个调用语法不会改变,并且也不需要其他的检查——如果一个被调用的可失败构造器失败了,那么整个初始化进程将立刻失败并终止。

对于重写与代理,一个返回隐式解包(init!)的可失败构造器与正常构造器被一样对待。对于返回可选值的可失败构造器(init?),这里有一些额外的限制要求:

1、init可以重写init? , 反之不可以

2、init?可以调用init

3、init可以调用init? (通过使用init并!解包,如果用?,失败情况会导致程序崩溃)

具体见下示例:


Image A

TIPS:

子类构造器绝不可以为父类设置常量(let),这是因为在允许子类做 除了不能初始化自己的属性和调用另一个构造器之外 所有事 的时候,父类已经完成了自身的初始化。

相关文章

  • Swift面向对象

    创建一个类 类的四种属性 类的构造 swift类构造过程 指定构造器 便利构造器 KVC构造器 实例方法和类方法 ...

  • iOS9 with Swift 类的构造器(四)

    可失败构造器(Failable initializers): 直到一个可失败构造器完成了它所有的初始化任务,它才可...

  • swift学习笔记

    1.swift类的构造器 swift构造器有三种:指定构造器和, 便利构造器, 默认构造器. 其中用'conve...

  • Swift类的构造过程

    Swift类的存储型属性必须在构造过程完成后有值,Swift为类提供了两种构造器——指定构造器、便利构造器 指定构...

  • iOS开发 - 「Swift 学习」Swift的构造过程(四)

    类的继承和构造过程 Swift 提供指定构造器、便利构造器两种类型的类构造器来确保所有类实例中存储型属性都能获得初...

  • iOS9 with Swift 类的构造器(一)

    隐含构造器: 如果一个类,或是没有存储属性,或是已经初始存储属性在声明中,并且没有显式构造器,那么它就含有一个隐含...

  • iOS9 with Swift 类的构造器(二)

    子类的构造器 在阐明和辨别清楚指定构造器和便利构造器之后,我们就可以开始了解子类的构造器了。 未声明构造器: 如果...

  • iOS9 with Swift 类的构造器(五)

    要求构造器: 对于类的构造器还有一件事要说明:前缀为required的构造器。这意味着子类不能遗漏它。而这接下来就...

  • iOS9 with Swift 类的构造器(三)

    重写构造器: 在子类中,父类的构造器是可以被重写的,并且依照如下的规定: 1、Signature与父类的便利构造器...

  • Swift学习:构造器(中)

    Swift之构造器(上)Swift之构造器(中)Swift之构造器(下) 本篇继续对Swift中的构造器进行介绍,...

网友评论

    本文标题:iOS9 with Swift 类的构造器(四)

    本文链接:https://www.haomeiwen.com/subject/qoiajttx.html