iOS如何快速熟悉項目控制器加載情況

對于一個大項目而言,最煩惱的就是在眾多界面難以找到對應的viewController,要改個東西都要花好長的時間去找對應的類。特別是當你接手一個大項目的時候,對整體的業務邏輯不熟悉,整體的架構體系不熟悉,讓你修復某個頁面的BUG,估計你找這個頁面所對應的viewController都要找好久。

有一種比較簡單的方法可以實現這個功能,在很多時候我們的ViewController中都有Hud顯示和alertView顯示的情況,我們就可以簡歷一個基類控制器ViewController,把多數頁面都會用到的東西放在里面,所以說如何解決項目中的業務邏輯熟悉,就可以通過在基類里面重寫viewWillAppear方法達到。第二種就是通過運行時交換ViewWillAPPear方法。

第一種方法適合剛開始的項目使用,第二種則是那個階段都可以使用的。

一、第一種方案

-?(void)viewWillAppear:(BOOL)animated?{

[super?viewWillAppear:animated];

NSString?*controllerName?=?NSStringFromClass([self?class]);

NSLog(@"%@?is currentController",?controllerName?);

}

二、第二種方案

給UIViewContoller建立一個類別category,在category里進行方法的交換,既保留了原本的方法,又有打印信息

#import?"UIViewController+LoadPage.h"

#import?@implementation?UIViewController?(LoadPage)

+?(void)load?{

//我們只有在開發的時候才需要查看哪個viewController將出現

//所以在release模式下就沒必要進行方法的交換

#ifdef?DEBUG

//原本的viewWillAppear方法

Method?viewWillAppear?=?class_getInstanceMethod(self,?@selector(viewWillAppear:));

//需要替換成?能夠輸出日志的viewWillAppear

Method?logViewWillAppear?=?class_getInstanceMethod(self,?@selector(logViewWillAppear:));

//兩方法進行交換

method_exchangeImplementations(viewWillAppear,?logViewWillAppear);

#endif

}

-?(void)logViewWillAppear:(BOOL)animated?{

NSString?*controllerName?=?NSStringFromClass([self?class]);

//在這里,你可以進行過濾操作,指定哪些viewController需要打印,哪些不需要打印

if?([className?hasPrefix:@"UI"]?==?NO)?{

NSLog(@"%@?is currentViewController",controllerName?);

}

//下面方法的調用,其實是調用viewWillAppear

[self?logViewWillAppear:animated];

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 轉至元數據結尾創建: 董瀟偉,最新修改于: 十二月 23, 2016 轉至元數據起始第一章:isa和Class一....
    40c0490e5268閱讀 1,768評論 0 9
  • 之前到別人的一篇博客上評論了下他的打點統計方法,后來很多人來問我,,所以還是決定寫下這篇文章。第一次寫博客,不...
    yy倚樓聽風雨閱讀 4,659評論 5 26
  • 我們常常會聽說 Objective-C 是一門動態語言,那么這個「動態」表現在哪呢?我想最主要的表現就是 Obje...
    Ethan_Struggle閱讀 2,231評論 0 7
  • 前言: 關于Runtime的資料網上一搜很多,但總是寫的只言片語,不太全面。最近花了一個星期的時間重新學習Runt...
    小霍同學閱讀 1,009評論 0 2
  • 1、閱讀時我們都是帶有偏見的看我們想看的信息,很容易忽略掉本來很重要的信息。這一點有時候很致命,巴菲特投資最大的失...
    五彩冰峰閱讀 183評論 0 1