1.要創(chuàng)建本地倉庫锌订,將自己寫的demo 都推送上去定欧。https://github.com/GKman6657?移步git地址
2.為了避免界面在處理耗時的操作時卡死漾唉,比如讀取網(wǎng)絡數(shù)據(jù)伞广,IO,數(shù)據(jù)庫讀寫等,我們會在另外一個線程中處理這些操作涡拘,然后通知主線程更新界面玲躯。用GCD實現(xiàn)這個流程的操作比前面介紹的NSThread? NSOperation的方法都要簡單。
3.init鳄乏、viewDidLoad跷车、viewWillAppear、viewDidAppear橱野、viewWillDisappear朽缴、viewDidDisappear的執(zhí)行順序:
很明顯,先執(zhí)行init水援、然后執(zhí)行viewDidLoad密强,然后是viewWillAppear最后是viewDidAppear,這樣視圖就創(chuàng)建好了蜗元,當視圖消失或者被覆蓋的時候:viewWillDisappear? ? -->viewDidDisappear
這樣一來視圖就消失了或渤,當模擬內(nèi)存警告的時候:Received simulated memory warning. -->viewWillUnload-->viewDidUnload
當視圖控制對象收到內(nèi)存警告的時候,程序會執(zhí)行viewWillUnload最后是執(zhí)行viewDidUnload奕扣。
4.
*代碼區(qū):存放函數(shù)二進制代碼
*數(shù)據(jù)區(qū):系統(tǒng)運行時申請內(nèi)存并初始化薪鹦,系統(tǒng)退出時由系統(tǒng)釋放,存放全局變量惯豆、靜態(tài)變量池磁、常量
*堆區(qū):通過malloc等函數(shù)或new等操作符動態(tài)申請得到,需程序員手動申請和釋放
*棧區(qū):函數(shù)模塊內(nèi)申請楷兽,函數(shù)結(jié)束時由系統(tǒng)自動釋放地熄,存放局部變量、函數(shù)參數(shù)
ps: 棧和堆的不同
棧的空間由操作系統(tǒng)自動分配/釋放芯杀,堆上的空間手動分配/釋放离斩。棧空間是有限的瘪匿,而堆是很大的自由存儲區(qū)。C中的malloc函數(shù)分配的內(nèi)存空間是在堆上的,C++中對應的是new操作符寻馏。 程序在編譯期對變量和函數(shù)分配內(nèi)存都在棧上進行,且程序運行過程中函數(shù)調(diào)用時參數(shù)的傳遞也在棧上