在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
import UIKit // 1.一个类中至少有一个指定构造器, 其必须负责初始化类中所有的实例存储属性 // 2.便利构造器属于次要的, 辅助性的构造器 // 3.类中可以不定义便利构造器, 便利构造器必须调用同一个类中的其他构造器完成初始化 // 4.便利构造器的语法格式 convenience init(形参) {} // 5.只有类中才有便利构造器 // 类的构造器链 // Swift对构造器之间的调用链制定了如下3条规则: // 1.子类构造器必须调用直接父类的指定构造器(如果有乳类) // 2.便利构造器必须调用同一个类中的其他构造器 // 3.便利构造器调用的高早期链的最终节点必须是指定构造器 // 简化为: // 1.指定构造器总是向上代理(调用父类构造器) // 2.便利构造器总是横向代理(调用当前类的其他构造器) class Person { var name: String! var weight: Double // 定义指定构造器 init(name: String, weight: Double) { self.name = name self.weight = weight } // 定义便利构造器(使用convenience修饰) convenience init(n name: String, w weight: Double) { self.init(name: name, weight: weight) } } var p1 = Person(name: "Rinpe", weight: 62.0) var p2 = Person(n: "Lili", w: 50.0)
|
请发表评论