Swift构造函数和便利构造函数(3)

便利构造函数不能被重写或者 super

/// `便利构造函数` /// /// - parameter name: 姓名 /// - parameter age: 年龄 /// /// - returns: Person 对象,如果年龄过小或者过大,返回 nil convenience init?(name: String, age: Int) { if age < 20 || age > 100 { return nil } self.init(dict: ["name": name, "age": age]) }

注意:在 Xcode 中,输入 self.init 时没有智能提示

/// 学生类 class Student: Person { /// 学号 var no: String? convenience init?(name: String, age: Int, no: String) { self.init(name: name, age: age) self.no = no } } 便利构造函数应用场景

根据给定参数判断是否创建对象,而不像指定构造函数那样必须要实例化一个对象出来

在实际开发中,可以对已有类的构造函数进行扩展,利用便利构造函数,简化对象的创建

构造函数小结

指定构造函数必须调用其直接父类的的指定构造函数(除非没有父类)

便利构造函数必须调用同一类中定义的其他指定构造函数或者用 self. 的方式调用父类的便利构造函数

便利构造函数可以返回 nil

便利构造函数不能被重写

Ubuntu 15.10安装部署Swift开发环境   

Swift 的变化:从 2.2 到 3.0 会带来什么   

Swift 正式开源,同时开源 Swfit 核心库和包管理器  

Apple Swift学习教程   

使用 Swift 构建一个 iOS 的邮件应用  

Swift 2.0开源化   

Linux下搭建Swift语言开发学习环境  

Swift 的详细介绍请点这里 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/ba0d3e0ac444a9e41123cddc54baa91f.html