ViewController的生命週期隨着系統版本的升級,有些方法已經失效了,爲何失效,和爲啥要失效,是咱們必需要掌握的技能,剛開始作iOS那會都是讓用mrc寫代碼,爲啥呢,由於更好的讓明白生命週期,爲了學習本質,隨着時間的轉移,arc的替代了mrc,雖然說如今有些第三方庫仍是不支持arc,可是蘋果也支持混編,混編其實對一個項目來講並非更好,我寧願本身動手改改第三方庫,雖然說會改出毛病來(畢竟對c++的功底仍是要求的),我認爲不管怎麼改都會改出毛病,人家寫好的庫,你改了,就是有毛病,你本身認爲沒有毛病,別人不那樣認爲,因此通常都是對第三方庫進行優化,或者本身寫一個相似的庫來顯示本身技術的牛,其實都是瞎胡鬧,嘴巴那樣說說,內心仍是很佩服的,畢竟別人本身寫的,這樣技術就日益提升了差距。c++
ViewController的生命週期理解透徹,對內存泄露和優化有着獨特的解決問題的方法,一樣也會讓本身的代碼看起來很規範,說白了最簡單的辦法就是每一個方法打印一遍,而後挨個吃透就能夠了,深刻的辦法就是看源碼本身一步一步去研究去,這樣收穫會更大,在學習其餘語言更加方便。我也學了好幾門語言,咋說呢,思想都是相同,仍是大神說的對,要把一門語言吃透,首先得有個吃飯的飯碗,其次保持本身的飯碗不會被搶,而後纔是給本身加菜仍是加肉就是看本身的職業發展。app
#pragma mark 1.初始化方法 - (instancetype)init{ self = [super init]; if(self){ NSLog(@"%s",__func__); } return self; } #pragma mark 2.加載view方法 - (void)loadView{ [super loadView]; NSLog(@"%s",__func__); } #pragma mark 3.加載方法 - (void)viewDidLoad{ [super viewDidLoad]; } #pragma mark 4.將要修改視圖大小方法 - (void)viewWillLayoutSubviews{ [super viewWillLayoutSubviews]; NSLog(@"%s",__func__); } #pragma mark 5.修改視圖完成大小方法 - (void)viewDidLayoutSubviews{ [super viewDidLayoutSubviews]; NSLog(@"%s",__func__); } #pragma mark 6.將要進來方法 - (void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; NSLog(@"%s",__func__); } #pragma mark 7.已經進來方法 - (void)viewDidAppear:(BOOL)animated{ [super viewDidAppear:animated]; NSLog(@"%s",__func__); } #pragma mark 8.將要進來離開方法 - (void)viewWillDisappear:(BOOL)animated{ [super viewWillAppear:animated]; NSLog(@"%s",__func__); } #pragma mark 9.已經離開方法 - (void)viewDidDisappear:(BOOL)animated{ [super viewDidDisappear:animated]; [self.person release]; self.person = nil; NSLog(@"%s",__func__); } #pragma mark 內存溢出的方法 只要內存溢出,就會調用方法 區域[視圖加載完畢--視圖離開的方法] - (void)didReceiveMemoryWarning{ NSLog(@"%s",__func__); } #pragma mark 釋放內存的方法 只要引用計數位0,就會調用,區域[視圖加載完畢--視圖離開的方法] - (void)dealloc{ [super dealloc]; NSLog(@"%s",__func__); }
以上代碼就是ViewController的生命週期的方法,有些過期了,蘋果內部作了優化,就是不經常使用。ide