iOS 精簡Controlelr代碼的兩個方法
阿新 • • 發佈:2018-07-03
時間 復用 github cti 發的 tor role app demo
MVC是蘋果推薦使用的iOS APP架構。後來又有MVVM,MVP等架構出現。主要目的是讓業務邏輯、展示、數據各個層級解耦。實現最大程度上的代碼復用。
對MVC這種架構來說,隨著APP中模的增多,控制器中的業務邏輯會越來越復雜,代碼量會越來越多。一個文件有幾千行也很常見。這時候就算打上mark找方法也是很費時間的事兒。
針對這種情況,我們可以把不必要的代碼分離出來,如View及其子控件的構建,UITableView,UICollectionView的DataSource方法都可以單獨另起一個類。
1、view層的構建可以放到一個分來中來實現。也可以用接口+消息轉發第二步(forwardtarget:forSelector:)來實現。
2、DataSource的方法可以用消息轉發的第三步,forwardInvocation:把方法實現都轉移到另一個類中。UITableViewDelegate的方法為什麽不也由其他方法來實現呢?
其實也是可以的,但是UITableViewDelegate 有點擊事件,最好是放到Controller裏來實現,這種事件響應最好由控制器來做。
demo:
https://github.com/wjwdive/BindViewTest
iOS 精簡Controlelr代碼的兩個方法