1. 程式人生 > >iOS 精簡Controlelr代碼的兩個方法

iOS 精簡Controlelr代碼的兩個方法

時間 復用 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代碼的兩個方法