美文网首页
Swift知识点总结(便利构造函数、析构函数和闭包特点)

Swift知识点总结(便利构造函数、析构函数和闭包特点)

作者: 常绿箩 | 来源:发表于2016-08-21 20:01 被阅读77次

"便利构造函数:自己不创建对象

1、作用:判断参数条件是否合法

2、传递‘常用/重要参数’

3、只有便利的构造函数才返回nil

4、‘指定’的构造函数不允许返回nil,必须返回一个对象

5、‘指定构造函数’,默认的都是,除了convenience修饰的

6、只有便利构造函数可以调用self.init

7、子类只能继承父类的指定构造函数,便利构造函数是本类的

"析构函数,类似于oc中的dealloc。对象被释放之前调用,可以用于释放资源,deinit开头

例子:在某个类中开启一个时钟,可以在析构函数中停止

1、没有func

2、没有()

3、不能被重载

4、不能直接被调用,被自动调用

"懒加载",是一个闭包,闭包只会执行一次

'lazy var dataList:[String] = {

'}()

1、dataList能够存储字符串数组

2、当调用dataList的时候,如果没有值,会执行后面的闭包

3、结果会保存在dataList中

4、lazy的用处:如果没有lazy,视图控制器一旦被创建,dataList就会被初始化

5、简单写法:'lazy var dataList:[String] = ["张三","李四"]

"setter"

1、在didSet的时候,如果小心可以直接解包

"只读属性-‘计算型属性,本身不会占用存储空间’,根据条件计算出来的,不允许修改

'var title:String? {

return "简略写法,直接return就好了,get only的属性"

'}

get only的完整写法

'var title:String? {

get {

return "完整写法,直接return就好了,get only的属性,只有get"

}

'}

"闭包的循环引用

1、闭包是准备好的代码,必须要使用self

"闭包的循环引用解决方式:

1、仿照oc解决  weak var weakSelf = self

2、swift中有特殊的写法 [weak self]

[weak self] 和 __weak typeof(self) 作用类似  -> 对象被回收是 内存地址会自动指向nil  更加安全 推荐使用这种方式

3、[unowned self] 不安全,会记录self的地址(地址是始终存在的,但是不会做强引用,一旦self真的释放了,程序会崩溃),容易造成野指针访问,[unowned self] 和 __unsafe__retained作用类似  -> 对象被回收是 内存地址不会自动指向nil 会造成野指针访问。特点:对象被释放,地址仍存在

oc中网络访问

nonnull  "!" 不能为空

nullable  "?" 可选项

"Swift的json反序列化

"重写:覆盖了父类的方法

"重载构造函数:函数名相同,参数不同

如果没有实现init()构造函数,一旦实现了其他的构造函数,默认的init()构造函数将无法被访问

相关文章

网友评论

      本文标题:Swift知识点总结(便利构造函数、析构函数和闭包特点)

      本文链接:https://www.haomeiwen.com/subject/dcdwsttx.html