本人有若干成套學(xué)習(xí)視頻, 可試看! 可試看! 可試看, 重要的事情說三遍 包含Java, 數(shù)據(jù)結(jié)構(gòu)與算法, iOS, 安卓, python, flutter等等, 如有需要, 聯(lián)系微信tsaievan.
ViewController在開發(fā)的過程中, 可能因為業(yè)務(wù)需求地增多, 變得越來越龐大, 這個時候, 我們需要為ViewController瘦身, 這時候我們可以用到一個特殊的"控件"-----Object

官方文檔對這個"控件"的解釋是:
Turn this object into an instance of a specific class using the custom class inspector.
This object is often used to instantiate custom controllers that are separate from view controllers, yet still maintain action and outlet relationships to views.
簡單來說就是自定義的控制器, 是從 view controllers 分離出來的, 分擔(dān)了一部分 view controllers 的功能, 用于處理view的事件處理和屬性等
在使用Object時, 就跟使用控件一模一樣, 把它拖到控制器中, 然后與自己的類關(guān)聯(lián).

上圖就是一個object控件, 然后關(guān)聯(lián)了自己的類, 并且拖線到控制器中:

此時, 控制器是持有這個類的. 然后我可以將控制器中處理按鈕點擊事件的邏輯, 全部轉(zhuǎn)移到object中去執(zhí)行, 如果有數(shù)據(jù)要回傳到控制器中, 那么可以用代理回調(diào). 或者object弱持有控制器.
控制器和Object之間的關(guān)系如下圖:

這實際上是將代碼分門別類, object去處理具體的業(yè)務(wù)邏輯, 不同的邏輯由不同的object來處理, 而控制器相當(dāng)于做一個業(yè)務(wù)分發(fā):
