一。通过闭包和函数实现属性的默认值
当某个存储属性的默认值需要定制时,可以通过闭包或全局函数来为其提供定制的默认值。
注:全局函数结构体和枚举使用关键字static标注 函数则使用class关键字标注
当对一个属性使用闭包函数进行赋值时,每当此属性所述的类型被创建实例时,对应的闭包或函数会被调用,而他们的返回值会被作为属性的默认值。
ESC:
Class SomeCLass{ let someProperty:SomeType={ //给someProperty赋一个默认值 //返回一个与SomeType类型相同的Value return someValue }()//以()结束作为闭包函数的标志 }//圆括号是为了告诉编译器要立刻执行此闭包。如果省略圆括号,则将整个函数赋给属性,而非返回值
注意:在使用闭包给属性赋值时,实例的其他部分都还没有进行初始化,意味着不能在闭包里,访问其他属性,就算这个属性有默认值也不行。同时也不能使用隐式的self,或者调用其他的实例方法
二、析构过程
swift会自动释放不再需要的实例,但对于某些自己创建的实例对象,就需要手动通过析构过程去释放对象。
析构过程仅适用于类类型。
每个类做多只能有一个析构函数,语法如下:
deinit{ //析构过程 } 整个函数不含参数和()关于继承,子类会自动继承父类的析构函数。在子类的析构函数的最后,会自动调用父类的析构函数。并不需要手动调用super.deinit
即使子类没有提供自己的析构函数,父类的析构函数也会被调用
swift学习笔记(六)析构过程和使用闭包对属性进行默认值赋值,布布扣,bubuko.com
swift学习笔记(六)析构过程和使用闭包对属性进行默认值赋值
原文:http://blog.csdn.net/jidiao/article/details/32909879