一、APP的生命週期和viewcontroler的生命週期?程序員
答:APP的生命週期:在APP的代理中分爲七個階段:面試
1.將要啓動編程
2.已經啓動設計模式
3.將要進入非活動狀態多線程
4.進入後臺併發
5.從後臺進入前臺框架
6.進入活動狀態異步
7.內存告警async
viewcontroller的生命週期:(也是七個)學習
loadView->viewDidLoad->viewWillAppear->viewDidAppear->viewWillDisAppear->viewDidDisAppear->delloc
二、多線程:NSThread、NSOperation、GCD
NSOperation 是個抽象類,並不具有封裝操做的能力,必須使⽤它的子類:
NSInvocationOperation (使用代理)
NSBlockOperation (使用block)
GCD---
Grand Central Dispatch
(GCD) 是Apple開發的一個多核編程的較新的解決方法
學習GCD以前,先來了解GCD中兩個核心概念:任務和隊列
任務:就是執行操做的意思,換句話說就是你在線程中執行的那段代碼。在GCD中是放在block中的。執行任務有兩種方式:同步執行和異步執行。二者的主要區別是:是否具有開啓新線程的能力。
正向傳值 A->B 在A中聲明一個block Apush前進行block的實現block B中要賦值的時候進行調用block 這種block應爲帶參數和返回值的block
反向傳值 B->A 在B中聲明一個block Apush前實現block Bpop前調用block 這種block應爲帶參數的block
單例傳值也分爲正向傳值 和反向傳值
正向傳值就不說了 說白了就是一箇中間者 A->B A->C C->A
反向傳值的話就是 B->A Bpop時把值賦值給單例 在界面消失時實例化A的對象 把單例的值賦給A (感受畫蛇添足 還不如直接屬性賦值 但單例在數據共享時仍是有用處的)
四、MVC、MVVM、MVP三大設計框架
MVC
缺陷:
實在是寫的太好了 就直接拿過來了
MVVM:
MVP:
五、單例(singleton)代理(delegate)觀察者(observer)動做/目標機制(target/action)等常見設計模式
單例:
代理:
觀察者:
動做/目標機制:
總結的好,但願能收穫一個贊 給點鼓勵
這是第一章總結的面試題就有一大堆東西了
接下來還有第二章 或者個人簡書地址去看看:http://www.jianshu.com/users/795c2ec428fd/latest_articles 也收藏了些乾貨。
謝謝你們的支持