关键字:
init:初始化
注意:1:没有返回值,不需要加func,使用对象属性之前必须对属性初始化
使用:
var a:Int
init(){
a=0;//在上面没有初始化必须在这初始化不然报错,提示未初始化
}
当声明为强制解包可选(!)可以不用初始化方法
如:
var a:Int
init(ma:Int){
a=ma;
}
默认初始化:class test{
var a="xxx" //对类存储属性初始化赋值
var b:Int? //对类存储属性设置为可选
var c:Int! //对类存储属性设置为强制解包可选
}
便利初始化方法及重载:
在便利初始化方法的实现里面必须调用一个其他的初始化方法,在func前面添加convenience 关键字即可
class test{
var a:int
init(a:Int){
self.a=a
}
convenience init(a b :Int){
self.init(a:b)//在便利初始化方法的实现里面必须调用一个其他的初始化方法
}
convenience init(b :Int){
self.init(a:b)//在便利初始化方法的重载
}
}
了解使用闭包(如果某个存储属性的默认值需要特别定制或者准备,那么久可以使用闭包来初始化这个属性的默认值)
注意:闭包要添加(),告诉swift要立即执行这个闭包,否则会把本身作为赋值给属性而报错
初始化方法是为了类创建对象的时候,使用对象属性对其属性赋初始值,那么当你这个对象销毁的使用,也要对属性进行释放。减少资源浪费。
注意点
要把对象设置为nil,不然反初始化方法不会被调用