swift学习笔记(六)析构过程和使用闭包对属性进行默认值赋值

一。通过闭包和函数实现属性的默认值

当某个存储属性的默认值需要定制时,可以通过闭包或全局函数来为其提供定制的默认值。

注:全局函数结构体和枚举使用关键字static标注    函数则使用class关键字标注

当对一个属性使用闭包函数进行赋值时,每当此属性所述的类型被创建实例时,对应的闭包或函数会被调用,而他们的返回值会被作为属性的默认值。

ESC:

Class SomeCLass{
let  someProperty:SomeType={
//给someProperty赋一个默认值
//返回一个与SomeType类型相同的Value
return someValue
}()//以()结束作为闭包函数的标志
}//圆括号是为了告诉编译器要立刻执行此闭包。如果省略圆括号,则将整个函数赋给属性,而非返回值

注意:在使用闭包给属性赋值时,实例的其他部分都还没有进行初始化,意味着不能在闭包里,访问其他属性,就算这个属性有默认值也不行。同时也不能使用隐式的self,或者调用其他的实例方法


二、析构过程

swift会自动释放不再需要的实例,但对于某些自己创建的实例对象,就需要手动通过析构过程去释放对象。

析构过程仅适用于类类型。

每个类做多只能有一个析构函数,语法如下:

deinit{
//析构过程
}
整个函数不含参数和()
关于继承,子类会自动继承父类的析构函数。在子类的析构函数的最后,会自动调用父类的析构函数。并不需要手动调用super.deinit

即使子类没有提供自己的析构函数,父类的析构函数也会被调用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值