iOS面試用到的一些知識點和技術

一、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會自動利用更多的CPU內核(好比雙核、四核)
  • GCD會自動管理線程的生命週期(建立線程、調度任務、銷燬線程
  • 程序員只須要告訴GCD想要執行什麼任務,不須要編寫任何線程管理代碼

  學習GCD以前,先來了解GCD中兩個核心概念:任務和隊列

任務:就是執行操做的意思,換句話說就是你在線程中執行的那段代碼。在GCD中是放在block中的。執行任務有兩種方式:同步執行異步執行。二者的主要區別是:是否具有開啓新線程的能力。

  • 同步執行(sync):只能在當前線程中執行任務,不具有開啓新線程的能力
  • 異步執行(async):能夠在新的線程中執行任務,具有開啓新線程的能力
  • 隊列:這裏的隊列指任務隊列,即用來存聽任務的隊列。隊列是一種特殊的線性表,採用FIFO(先進先出)的原則,即新任務老是被插入到隊列的末尾,而讀取任務的時候老是從隊列的頭部開始讀取。每讀取一個任務,則從隊列中釋放一個任務。在GCD中有兩種隊列:串行隊列併發隊列
    想要更詳細的瞭解GCD去看:http://www.jianshu.com/p/2d57c72016c6
  • 三、單例、代理、屬性、通知、block的傳值技術?
  • 屬性傳值很好理解。A->B  就在B的.h中暴露出一個屬性就能夠了,在A中直接調用B的實例進行賦值就能夠了。   也是最簡單的傳值方法
  • 代理傳值  A->B  在A中聲明協議  在B中遵循協議  並實現協議方法就能夠了        也比較簡單
  • B->A  即反向傳值    在B中聲明協議  A中遵循協議----- 在A中push到B時遵循協議,設置代理  並實現代理方法   在B中pop回A時利用本身的代理執行代理方法(即把B中的值賦給代理方法中的參數便可)  是否是很簡單      
  • 只要記住   代理反向傳值   誰傳誰聲明協議   接收方實現代理方法   push前遵循協議設置代理   pop前執行代理方法(賦值)
  •   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   也收藏了些乾貨。

謝謝你們的支持

相關文章
相關標籤/搜索