便利构造函数

class Person: NSObject {

var name : String?

var age: Int = 0


init(dic: [String:Any]) {

super.init()

setValuesForKeys(dic)

}


//便利构造函数  可能加了?

//可以返回nil前提是一个可失败的构造函数

//只能使用self调用其他构造函数

//不能使用super关键字

//作用:根据外部的参数决定是否创建读写

//便利构造函数默认调用自己的类的构造函数

convenience init?(name : String,age : Int) {

if age < 0 || age > 150 {

return nil

}

//执行到此,年龄合法

self.init(dic:["name":name,"age":age])

}





便利构造函数_第1张图片

class Student: Person {

var no : String?

//便利构造函数不能在子类里重写

convenience init?(no: String,name: String,age: Int) {

self.init(name:name,age:age)

//便利构造函数 没有创建对象能力 只能通过调用其他构造函数 完成创建对象能力

self.no = no

}

}

你可能感兴趣的:(便利构造函数)