第六章:函数(function)
6.3 函数作为代理 function as delegate.
foundation框架的代理
知识点1:本小节只有一个知识点 swfit中的代理用weak
来修饰 防止循环引用
。
weak var delegate: xxxDelegate?
结构体代理
知识点2:我们可以将代理方法用mutating
关键字来修饰,来修改结构体本身
的内容
书中举了个例子:将结构体设置成代理
。 发现原结构体的内部并不能改变
。
原因:delegate = structXX 时,实质是把结构体的复制
赋值给了delegate。所以结构体内部不能发生改变
总结: 在代理和协议的模式中,并不适合
使用结构体。
使用函数,而非代理(其实就是使用闭包
,不用代理)
这个小节主要就是讲对于结构体,尽量不要用delegate,用闭包
就行。 通过[weak self]的方式避免循环引用
。