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

來源:互聯網
上載者:User

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

1、APP的生命週期和viewcontroler的生命週期?

答:APP的生命週期:在APP的代理中分為七個階段:

1.將要啟動

2.已經啟動

3.將要進入非使用中

4.進入後台

5.從後台進入前台

6.進入活動狀態

7.記憶體警示

viewcontroller的生命週期:(也是七個)

loadView->viewDidLoad->viewWillAppear->viewDidAppear->viewWillDisAppear->viewDidDisAppear->delloc

2、多線程: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
  • 3、單例、代理、屬性、通知、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      (感覺多此一舉  還不如直接屬性賦值   但單例在資料共用時還是有用處的)

4、MVC、MVVM、MVP三大設計架構

  MVC

 

缺陷:

 

 

 

實在是寫的太好了  就直接拿過來了

MVVM:

MVP:

 

 5、單例(singleton)代理(delegate)觀察者(observer)動作/目標機制(target/action)等常見設計模式

單例:

代理:

 

觀察者:

 

 

 

 動作/目標機制:

總結的好,希望能收穫一個贊  給點鼓勵

這是第一章總結的面試題就有一大堆東西了  

接下來還有第二章  或者我的簡書地址去看看:http://www.jianshu.com/users/795c2ec428fd/latest_articles   也收藏了些乾貨。

謝謝大家的支援

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.