[swift 进阶]读书笔记-第六章:函数 C6P3函数作为代

2019-01-15  本文已影响6人  liaoworkinn

第六章:函数(function)

6.3 函数作为代理 function as delegate.

foundation框架的代理


知识点1:本小节只有一个知识点 swfit中的代理用weak 来修饰 防止循环引用
        weak var delegate: xxxDelegate?

结构体代理


知识点2:我们可以将代理方法用mutating关键字来修饰,来修改结构体本身的内容

书中举了个例子:将结构体设置成代理。 发现原结构体的内部并不能改变

原因:delegate = structXX 时,实质是把结构体的复制赋值给了delegate。所以结构体内部不能发生改变
总结: 在代理和协议的模式中,并不适合使用结构体。

使用函数,而非代理(其实就是使用闭包,不用代理)

这个小节主要就是讲对于结构体,尽量不要用delegate,用闭包就行。 通过[weak self]的方式避免循环引用

知识点3:要注销一个代理用 = nil就可以。要注销闭包就不行了,闭包实质上是函数,函数无法被比较,只能通过额外的逻辑代码去移除。

文章源文件地址

上一篇 下一篇

猜你喜欢

热点阅读