便利构造函数并不负责创建对象,在便利构造函数中可以对属性进行判断,判断是否符合创建条件,也可以为创建的对象赋值,但是由于便利构造函数不负责创建对象,所以在便利构造函数中必须要去手动调用构造函数self.init()去真正的创建对象,并且由于在便利构造函数中可以对构造的对象的属性进行判断,如果属性不能通过判断则不创建对象,所以便利构造函数可以返回一个nil所以构造函数名可以为 convenience init?是一个可以返回nil的构造函数。 并且在便利构造函数中可以对成功创建的对象进行属性的赋值,所以属性的赋值必须要在对象的创建之后,也就是self.init之后。 例
```
convenienceinit?( age : Int ,name :String){
if age >100{
return nil
}else{
self.init()
self.name = name
}
}
```
网友评论