1. 程式人生 > >重寫viewWillAppear 和 viewWillDisAppear時[super viewWillAppear] 和 [super viewWillDisappear]的調用位置

重寫viewWillAppear 和 viewWillDisAppear時[super viewWillAppear] 和 [super viewWillDisappear]的調用位置

快捷鍵 技術 靜態 animate 謝謝 pear logs 工具 log

參考網址:https://stackoverflow.com/questions/3906704/when-should-i-call-super

在寫代碼的過程中如果重寫了viewWillAppear 和 viewWillDisAppear方法,但是沒有調用[super viewWillAppear] 和 [super viewWillDisappear]的話使用靜態分析工具(快捷鍵 command + shift + B)分析的時候會出現問題

如下圖展示出來出現問題的情況和 XCode給出的問題說明:

/ViewController.m:29:1: The ‘viewWillAppear:‘ instance method in UIViewController subclass ‘ViewController‘ is missing a [super viewWillAppear:] call

/ViewController.m:29:1: The ‘viewWillAppear:‘ instance method in UIViewController subclass ‘ViewController‘ is missing a [super viewWillAppear:] call

技術分享

如果調用了super 的方法的話在使用靜態分析工具的時候就不會出現問題

那麽說我們如果是在這兩個方法裏邊要執行其他的代碼的話,應該是要先調用super 還是要先調用我們要執行的別的代碼呢?

https://stackoverflow.com/questions/3906704/when-should-i-call-super

stackoverflow上邊是這麽說的 如下圖所示

技術分享

以後可以這麽寫

 1 - (void)viewWillAppear:(BOOL)animated{
 2     [super viewWillAppear:animated];
 3     //在這裏調用要執行的代碼
 4     
 5     
 6 }
 7 
 8 - (void)viewDidAppear:(BOOL)animated{
 9     //在這裏調用要執行的代碼
10     [super viewDidAppear:animated];
11 }

如有錯誤 敬請指正

如需轉載 請註明出處 謝謝

重寫viewWillAppear 和 viewWillDisAppear時[super viewWillAppear] 和 [super viewWillDisappear]的調用位置