溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

2020年面向iOS開(kāi)發(fā)人員的知識(shí)點(diǎn)總結(jié)(更新中)

發(fā)布時(shí)間:2020-08-15 13:35:53 來(lái)源:ITPUB博客 閱讀:691 作者:iOSeryh94 欄目:移動(dòng)開(kāi)發(fā)
前言:

最近在整理自己的技術(shù)棧,收集了一些自己認(rèn)為比較重要的知識(shí)點(diǎn)分享給大家。

Runloop

1. iOS中觸摸事件傳遞和響應(yīng)原理

2. 為什么只有主線程的 runloop是開(kāi)啟的

3. 為什么只在主線程刷新UI

4.  PerformSelectorrunloop的關(guān)系

5.GCD 在Runloop中的使用?

6.AFNetworking 中如何運(yùn)用 Runloop?

Runtime

1.Category 的實(shí)現(xiàn)原理?

2.isa指針的理解,對(duì)象的isa指針指向哪里?isa指針有哪兩種類(lèi)型?

3.Objective-C 如何實(shí)現(xiàn)多重繼承?

4.runtime 如何實(shí)現(xiàn) weak 屬性?

5.講一下 OC 的消息機(jī)制

6.runtime具體應(yīng)用

7.runtime如何通過(guò)selector找到對(duì)應(yīng)的IMP地址?

8.簡(jiǎn)述下Objective-C中調(diào)用方法的過(guò)程

9.load和initialize的區(qū)別

10.怎么理解Objective-C是動(dòng)態(tài)運(yùn)行時(shí)語(yǔ)言。

KVO

1. 實(shí)現(xiàn)原理

2. 通過(guò)KVC修改屬性會(huì)觸發(fā)KVO么?KVC的賦值和取值過(guò)程是怎樣的?原理是什么?

3. 哪些情況下使用kvo會(huì)崩潰,怎么防護(hù)崩潰

4. kvo的優(yōu)缺點(diǎn)

Block
  1. block的內(nèi)部實(shí)現(xiàn),結(jié)構(gòu)體是什么樣的
  2. block是類(lèi)嗎,有哪些類(lèi)型
  3. 一個(gè) int變量被  __block 修飾與否的區(qū)別?block的變量截獲
  4. block在修改 NSMutableArray,需不需要添加 __block
  5. 怎么進(jìn)行內(nèi)存管理的
  6. block可以用 strong修飾嗎
  7. 解決循環(huán)引用時(shí)為什么要用 __strong、__weak修飾
  8. block發(fā)生 copy時(shí)機(jī)
  9. Block訪問(wèn)對(duì)象類(lèi)型的 auto變量時(shí),在 ARC和MRC下有什么區(qū)別
多線程

主要以GCD為主

  1. iOS開(kāi)發(fā)中有多少類(lèi)型的線程?分別對(duì)比
  2. GCD有哪些隊(duì)列,默認(rèn)提供哪些隊(duì)列
  3. GCD有哪些方法api
  4. GCD主線程 & 主隊(duì)列的關(guān)系
  5. 如何實(shí)現(xiàn)同步,有多少方式就說(shuō)多少
  6. dispatch_once實(shí)現(xiàn)原理
  7. 什么情況下會(huì)死鎖
  8. 有哪些類(lèi)型的線程鎖,分別介紹下作用和使用場(chǎng)景
  9. NSOperationQueue中的 maxConcurrentOperationCount默認(rèn)值
  10. NSTimer、CADisplayLink、dispatch_source_t 的優(yōu)劣
架構(gòu)設(shè)計(jì)
  1. 手動(dòng)埋點(diǎn)、自動(dòng)化埋點(diǎn)、可視化埋點(diǎn)
  2. MVC、MVP、MVVM設(shè)計(jì)模式
  3. 常見(jiàn)的設(shè)計(jì)模式
  4. 單例的弊端
  5. 常見(jiàn)的路由方案,以及優(yōu)缺點(diǎn)對(duì)比
  6. 如果保證項(xiàng)目的穩(wěn)定性
  7. 設(shè)計(jì)一個(gè)圖片緩存框架(LRU)
  8. 如何設(shè)計(jì)一個(gè) git diff
  9. 設(shè)計(jì)一個(gè)線程池?畫(huà)出你的架構(gòu)圖
  10. 你的app架構(gòu)是什么,有什么優(yōu)缺點(diǎn)、為什么這么做、怎么改進(jìn)
數(shù)據(jù)結(jié)構(gòu)

1.數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)一般常用的有幾種?各有什么特點(diǎn)?

2.集合結(jié)構(gòu) 線性結(jié)構(gòu) 樹(shù)形結(jié)構(gòu) 圖形結(jié)構(gòu)

3.單向鏈表 雙向鏈表 循環(huán)鏈表

4.數(shù)組和鏈表區(qū)別

5.堆、棧和隊(duì)列

6.輸入一棵二叉樹(shù)的根結(jié)點(diǎn),求該樹(shù)的深度?

7.輸入一課二叉樹(shù)的根結(jié)點(diǎn),判斷該樹(shù)是不是平衡二叉樹(shù)?

8.字符串處理

這是我的iOS開(kāi)發(fā)交流群: 519832104不管你是小白還是大牛歡迎入駐,可以一起分享經(jīng)驗(yàn),討論技術(shù),共同學(xué)習(xí)成長(zhǎng)!
另附上一份各好友收集的大廠面試題,需要iOS開(kāi)發(fā)學(xué)習(xí)資料、面試真題,進(jìn)群即可自行下載!

2020年面向iOS開(kāi)發(fā)人員的知識(shí)點(diǎn)總結(jié)(更新中)

點(diǎn)擊此處,立即與iOS大牛交流學(xué)習(xí)
算法

1.時(shí)間復(fù)雜度

2.空間復(fù)雜度

3.常用的排序算法

4.字符串反轉(zhuǎn)

5.鏈表反轉(zhuǎn)(頭差法)

6.有序數(shù)組合并

7.查找第一個(gè)只出現(xiàn)一次的字符(Hash查找)

8.查找兩個(gè)子視圖的共同父視圖

9.無(wú)序數(shù)組中的中位數(shù)(快排思想)

10.給定一個(gè)整數(shù)數(shù)組和一個(gè)目標(biāo)值,找出數(shù)組中和為目標(biāo)值的兩個(gè)數(shù)。

11.八大排序算法

Foundation

1.nil、NIL、NSNULL 有什么區(qū)別?

2.如何實(shí)現(xiàn)一個(gè)線程安全的 NSMutableArray?

3.atomic 修飾的屬性是絕對(duì)安全的嗎?為什么?

4.實(shí)現(xiàn) isEqual 和 hash 方法時(shí)要注意什么?

5.id 和 instanceType 有什么區(qū)別?

6.self和super的區(qū)別

7.@synthesize和@dynamic分別有什么作用?

8.typeof 和  typeof,typeof 的區(qū)別?

9.類(lèi)族

10.struct和class的區(qū)別

UIKit

1.UIView 和 CALayer 是什么關(guān)系?

2.Bounds 和 Frame 的區(qū)別?

3.setNeedsDisplay 和 layoutIfNeeded 兩者是什么關(guān)系?

4.談?wù)剬?duì)UIResponder的理解

5.loadView的作用?

6.使用 drawRect有什么影響?

7.keyWindow 和 delegate的window有何區(qū)別

動(dòng)畫(huà)

1.UIView動(dòng)畫(huà)與核心動(dòng)畫(huà)的區(qū)別?

2.當(dāng)我們要做一些基于 CALayer 的動(dòng)畫(huà)時(shí),有時(shí)需要設(shè)置 layer的錨點(diǎn)來(lái)配合動(dòng)畫(huà),這時(shí)候我們需要注意什么?

圖像處理

1.圖像的壓縮方式

2.如何計(jì)算圖片加載內(nèi)存中所占的大小

數(shù)據(jù)安全及加密

1.對(duì)稱(chēng)加密和非對(duì)稱(chēng)加密的區(qū)別?

2.簡(jiǎn)述 SSL 加密的過(guò)程用了哪些加密方法,為何這么作?

3.iOS的簽名機(jī)制是怎么樣的

WebView
  1. JS 和 OC 互相調(diào)用的幾種方式?

2.在使用 WKWedView 時(shí)遇到過(guò)哪些問(wèn)題?

組件化

1.組件化有什么好處?

2.你是如何組件化解耦的?

3.為什么CTMediator方案優(yōu)于基于Router的方案?

4.基于CTMediator的組件化方案,有哪些核心組成?

調(diào)試技巧

1.LLDB常用的調(diào)試命令?

2.斷點(diǎn)調(diào)試

3.iOS 常見(jiàn)的崩潰類(lèi)型有哪些?

源碼理解

1.YYKit

2.SDWebImage加載圖片過(guò)程

3.YYWebImage和SDWebImage對(duì)比

4.AFNetworking 底層原理分析

代碼管理

1.SVN與Git優(yōu)缺點(diǎn)比較

2.Git與SVN的區(qū)別

持續(xù)集成

1.你在項(xiàng)目中使用過(guò)什么持續(xù)集成方式?

2.jenkins怎么備份恢復(fù)

3.jenkins你都用了哪些插件?

查看更多:  iOS面試題合集

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI