溫馨提示×

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

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

iOS開(kāi)發(fā)常見(jiàn)面試題

發(fā)布時(shí)間:2020-05-25 09:47:25 來(lái)源:億速云 閱讀:463 作者:Leah 欄目:移動(dòng)開(kāi)發(fā)

相信很多新手小白對(duì)iOS開(kāi)發(fā)常見(jiàn)面試題的了解處于懵懂狀態(tài),通過(guò)這篇文章的總結(jié),希望你能有所收獲。如下資料是關(guān)于iOS開(kāi)發(fā)常見(jiàn)面試題的內(nèi)容。

一、Runtime
  • 一個(gè)objc對(duì)象的isa的指針指向什么?有什么作用?
  • 一個(gè) NSObject 對(duì)象占用多少內(nèi)存空間?
  • 說(shuō)一下對(duì) class_rw_t 的理解?
  • 說(shuō)一下對(duì) class_ro_t 的理解?
  • 說(shuō)一下對(duì) isa 指針的理解
  • 說(shuō)一下 Runtime 的方法緩存?存儲(chǔ)的形式、數(shù)據(jù)結(jié)構(gòu)以及查找的過(guò)程?
  • 使用runtime Associate方法關(guān)聯(lián)的對(duì)象,需要在主對(duì)象dealloc的時(shí)候釋放么?
  • 實(shí)例對(duì)象的數(shù)據(jù)結(jié)構(gòu)?
  • 什么是method swizzling(俗稱黑魔法)
  • 什么時(shí)候會(huì)報(bào)unrecognized selector的異常?
  • 如何給 Category 添加屬性?關(guān)聯(lián)對(duì)象以什么形式進(jìn)行存儲(chǔ)?
  • 能否向編譯后得到的類中增加實(shí)例變量?能否向運(yùn)行時(shí)創(chuàng)建的類中添加實(shí)例變量?為什么?
  • 類對(duì)象的數(shù)據(jù)結(jié)構(gòu)?
  • runtime如何通過(guò)selector找到對(duì)應(yīng)的IMP地址?
  • runtime如何實(shí)現(xiàn)weak變量的自動(dòng)置nil?知道SideTable嗎?
  • objc中向一個(gè)nil對(duì)象發(fā)送消息將會(huì)發(fā)生什么?
  • objc在向一個(gè)對(duì)象發(fā)送消息時(shí),發(fā)生了什么?
  • isKindOfClass 與 isMemberOfClass
  • Category 在編譯過(guò)后,是在什么時(shí)機(jī)與原有的類合并到一起的?
  • Category 有哪些用途?
  • Category 的實(shí)現(xiàn)原理?
  • _objc_msgForward函數(shù)是做什么的
  • [self class] 與 [super class]
  • 代碼題 一
  • 代碼題 二
二、Runloop
  • 為什么 NSTimer 有時(shí)候不好使?
  • AFNetworking 中如何運(yùn)用 Runloop?
  • autoreleasePool 在何時(shí)被釋放?
  • PerformSelector 的實(shí)現(xiàn)原理?
  • PerformSelector:afterDelay:這個(gè)方法在子線程中是否起作用?為什么?怎么解決?
  • RunLoop的Mode
  • RunLoop的實(shí)現(xiàn)機(jī)制
  • RunLoop和線程
  • RunLoop的數(shù)據(jù)結(jié)構(gòu)
  • RunLoop概念
  • RunLoop與NSTimer
  • 講一下 Observer ?
  • 解釋一下 NSTimer
  • 解釋一下 事件響應(yīng) 的過(guò)程?
  • 解釋一下 手勢(shì)識(shí)別 的過(guò)程?
  • 什么是異步繪制?
  • 利用 runloop 解釋一下頁(yè)面的渲染的過(guò)程?
三、Objective_C語(yǔ)言特性
  • KVC(Key-value coding)
  • KVO (Key-value observing)
  • 分類、擴(kuò)展、代理(Delegate)
  • 屬性關(guān)鍵字
  • 通知(NSNotification)
四、Animation
  • 請(qǐng)說(shuō)一下對(duì) CALayer 的認(rèn)識(shí)。
  • CALayerContents 有幾下幾個(gè)主要的屬性:
五、Block
  • Block的幾種形式
  • Block變量截獲
  • 什么是Block?
六、UI相關(guān)
七、多線程
  • 進(jìn)程、線程
  • 多進(jìn)程、多線程
  • 任務(wù)、隊(duì)列
  • iOS中的多線程
  • GCD---隊(duì)列
  • 死鎖
  • GCD任務(wù)執(zhí)行順序
  • dispatch_barrier_async
  • dispatch_group_async
  • Dispatch Semaphore
  • 延時(shí)函數(shù)(dispatch_after)
  • 使用dispatch_once實(shí)現(xiàn)單例
  • NSOperationQueue的優(yōu)點(diǎn)
  • NSOperation和NSOperationQueue
  • NSThread+runloop實(shí)現(xiàn)常駐線程
  • 自旋鎖與互斥鎖
八、內(nèi)存管理
  • 在 Obj-C 中,如何檢測(cè)內(nèi)存泄漏?你知道哪些方式?
  • 在 MRC 下如何重寫屬性的 Setter 和 Getter_
  • 循環(huán)引用
  • 說(shuō)一下什么是 懸垂指針?什么是 野指針?
  • 說(shuō)一下對(duì) retain,copy,assign,weak,_Unsafe_Unretain 關(guān)鍵字的理解
  • 是否了解 深拷貝 和 淺拷貝 的概念,集合類深拷貝如何實(shí)現(xiàn)
  • 使用自動(dòng)引用計(jì)數(shù)應(yīng)遵循的原則
  • 能不能簡(jiǎn)述一下 Dealloc 的實(shí)現(xiàn)機(jī)制
  • 內(nèi)存中的5大區(qū)分別是什么?
  • 內(nèi)存管理默認(rèn)的關(guān)鍵字是什么?
  • 內(nèi)存管理方案
  • 內(nèi)存布局
  • 講一下 iOS 內(nèi)存管理的理解
  • 講一下 @dynamic 關(guān)鍵字?
  • 簡(jiǎn)要說(shuō)一下 @autoreleasePool 的數(shù)據(jù)結(jié)構(gòu)?
  • 訪問(wèn) __weak 修飾的變量,是否已經(jīng)被注冊(cè)在了 @autoreleasePool 中?為什么?
  • retain、release 的實(shí)現(xiàn)機(jī)制?
  • MRC(手動(dòng)引用計(jì)數(shù))和ARC(自動(dòng)引用計(jì)數(shù))
  • BAD_ACCESS 在什么情況下出現(xiàn)?
  • autoReleasePool 什么時(shí)候釋放?
  • ARC自動(dòng)內(nèi)存管理的原則
  • ARC 在運(yùn)行時(shí)做了哪些工作?
  • ARC 在編譯時(shí)做了哪些工作
  • ARCretainCount 怎么存儲(chǔ)的?
  • __weak 屬性修飾的變量,如何實(shí)現(xiàn)在變量沒(méi)有強(qiáng)引用后自動(dòng)置為 nil ?
  • __weak_Unsafe_Unretain 的區(qū)別?
九、設(shè)計(jì)模式
  • 如何設(shè)計(jì)一個(gè)時(shí)長(zhǎng)統(tǒng)計(jì)框架?
  • 如何設(shè)計(jì)一個(gè)圖片緩存框架?
  • 編程中的六大設(shè)計(jì)原則?
十、數(shù)據(jù)安全及加密
  • RSA非對(duì)稱加密
  • 簡(jiǎn)述 SSL 加密的過(guò)程用了哪些加密方法,為何這么作?
十一、數(shù)據(jù)結(jié)構(gòu)與算法
  • iOS開(kāi)發(fā) 數(shù)據(jù)結(jié)構(gòu)
  • iOS 算法面試題(一)
  • iOS 算法面試題(二)
十二、網(wǎng)絡(luò)相關(guān)
  • HTTP協(xié)議
  • HTTPS、對(duì)稱加密、非對(duì)稱加密
  • 一個(gè)基于UDP的簡(jiǎn)單的聊天Demo
  • UDP的特點(diǎn)、UDP的報(bào)文結(jié)構(gòu)及差錯(cuò)檢測(cè)
  • TCP、三次握手、四次揮手、代碼實(shí)現(xiàn)
  • 可靠數(shù)據(jù)傳輸、流量控制(滑動(dòng)窗口)、擁塞控制
  • DNS
  • Cookie和Session
  • IP協(xié)議、IP數(shù)據(jù)報(bào)分片、IPv4編址、網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)
  • IPv6、從IPv4到IPv6的遷移
十三、性能優(yōu)化
  • iOS 性能優(yōu)化面試題
  • 光柵化
  • 日常如何檢查內(nèi)存泄露?
  • 如何高性能的畫一個(gè)圓角?
  • 如何提升 tableview 的流暢度?
  • 如何優(yōu)化 APP 的電量?
  • 如何有效降低 APP 包的大???
  • 什么是 離屏渲染?什么情況下會(huì)觸發(fā)?該如何應(yīng)對(duì)?
  • 如何檢測(cè)離屏渲染?
  • 怎么檢測(cè)圖層混合?

關(guān)于iOS開(kāi)發(fā)常見(jiàn)面試就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果喜歡這篇文章,不如把它分享出去讓更多的人看到。

向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