第六章:函式(function)
6.3 函式作為代理 function as delegate.
foundation框架的代理
知識點1:本小節只有一個知識點 swfit中的代理用weak
來修飾 防止迴圈引用
。
weak var delegate: xxxDelegate?
複製程式碼
結構體代理
知識點2:我們可以將代理方法用mutating
關鍵字來修飾,來修改結構體本身
的內容
書中舉了個例子:將結構體設定成代理
。 發現原結構體的內部並不能改變
。
原因:delegate = structXX 時,實質是把結構體的複製
賦值給了delegate。所以結構體內部不能發生改變
總結: 在代理和協議的模式中,並不適合
使用結構體。
使用函式,而非代理(其實就是使用閉包
,不用代理)
這個小節主要就是講對於結構體,儘量不要用delegate,用閉包
就行。 通過[weak self]的方式避免迴圈引用
。