原文地址:2018 iOS 面試題大全
由于原作者并沒有繼續(xù)更新欺劳,這里我轉(zhuǎn)過來繼續(xù)更新下
整理的一些iOS面試相關(guān)問題,持續(xù)更新喷鸽,敬請關(guān)注
2018 iOS面試題大全---全方面剖析面試
1魂仍、2018 iOS面試題---UI相關(guān):事件傳遞酗捌,圖像顯示鹏控,性能優(yōu)化厦凤,離屏渲染 2短绸、2018 iOS面試題---Objective_C語言特性相關(guān)問題
3车吹、2018 iOS面試題---runtime相關(guān)
4、2018 iOS面試題---算法相關(guān)
5醋闭、2019 iOS面試題-----內(nèi)存管理礼搁、自動(dòng)釋放池與循環(huán)引用
6、2019 iOS面試題-----Block原理目尖、Block變量截獲馒吴、Block的三種形式
7、2019 iOS面試題-----進(jìn)程、線程饮戳、多進(jìn)程豪治、多線程、任務(wù)扯罐、隊(duì)列负拟、NSThread、GCD歹河、NSOprationQueue...
8掩浙、2019 iOS面試題-----多線程相關(guān)之GCD、死鎖秸歧、dispatch_barrier_async厨姚、dispatch_group_async、Dispatch Semaphore
9键菱、2019 iOS面試題-----多線程相關(guān)之NSOperation谬墙、NSOperationQueue、NSThread+runloop實(shí)現(xiàn)常駐線程经备、加鎖
10拭抬、2019 iOS面試題-----RunLoop數(shù)據(jù)結(jié)構(gòu)、RunLoop的實(shí)現(xiàn)機(jī)制侵蒙、RunLoop的Mode造虎、RunLoop與NSTimer和線程
11、2019 iOS面試題-----網(wǎng)絡(luò)相關(guān)之HTTP協(xié)議
12纷闺、2019 iOS面試題-----網(wǎng)絡(luò)相關(guān)之HTTPS累奈、對稱加密、非對稱加密
13急但、2019 iOS面試-----一個(gè)基于UDP的簡單的聊天Demo(用C語言澎媒、python、GCDAsyncUdpSocket來實(shí)現(xiàn)UDP通信)
14波桩、2019 iOS面試題-----網(wǎng)絡(luò)相關(guān)之UDP的特點(diǎn)戒努、UDP的報(bào)文結(jié)構(gòu)及差錯(cuò)檢測
15、2019 iOS面試題-----網(wǎng)絡(luò)相關(guān)之TCP镐躲、三次握手储玫、四次揮手
16、2019 iOS面試題-----網(wǎng)絡(luò)相關(guān)之TCP進(jìn)階:可靠數(shù)據(jù)傳輸萤皂、流量控制(滑動(dòng)窗口)撒穷、擁塞控制
17、2019 iOS面試題-----網(wǎng)絡(luò)相關(guān)之DNS
18裆熙、2019 iOS面試題-----網(wǎng)絡(luò)相關(guān)之Cookie和Session
19端礼、2019 iOS面試題-----網(wǎng)絡(luò)相關(guān)之IP協(xié)議禽笑、IP數(shù)據(jù)報(bào)分片、IPv4編址蛤奥、網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)
20佳镜、2019 iOS面試題-----網(wǎng)絡(luò)相關(guān)之IPv6、從IPv4到IPv6的遷移
算法
1凡桥、七種常見的數(shù)組排序算法整理(C語言版本)
2蟀伸、2019 算法面試相關(guān)(leetcode)--數(shù)組和鏈表
3、2019 算法面試相關(guān)(leetcode)--字符串
4缅刽、2019 算法面試相關(guān)(leetcode)--棧和隊(duì)列
5啊掏、2019 算法面試相關(guān)(leetcode)--優(yōu)先隊(duì)列
6、2019 算法面試相關(guān)(leetcode)--哈希表
7衰猛、2019 算法面試相關(guān)(leetcode)--樹迟蜜、二叉樹、二叉搜索樹
8腕侄、2019 算法面試相關(guān)(leetcode)--遞歸與分治
9小泉、2019 算法面試相關(guān)(leetcode)--貪心算法
10芦疏、2019 算法面試相關(guān)(leetcode)--動(dòng)態(tài)規(guī)劃(Dynamic Programming)
11冕杠、2019 算法面試相關(guān)(leetcode)--動(dòng)態(tài)規(guī)劃之背包問題
這個(gè)欄目將持續(xù)更新--請iOS的小伙伴關(guān)注!
1、iOS 應(yīng)用導(dǎo)航模式有哪些酸茴?
2分预、iOS 中持久化方式有哪些?
3薪捍、iOS 單元測試框架有哪些笼痹?
4、iSO 7層協(xié)議酪穿,tcp四層協(xié)議及如何對應(yīng)的?
5凳干、iOS 你在項(xiàng)目中用過 runtime 嗎?舉個(gè)例子
6被济、iOS 什么是ARC救赐?
7、iOS 說明并比較關(guān)鍵詞:atomatic, nonatomic
8只磷、iOS 說明并比較關(guān)鍵詞:strong, weak, assign, copy
9经磅、iOS 說明并比較關(guān)鍵詞:__weak,__block
10钮追、iOS 什么情況下會(huì)出現(xiàn)循環(huán)引用预厌?
以上是原文給的答案,這里開始繼續(xù)更新答案
11元媚、iOS 類(class)和結(jié)構(gòu)體(struct)有什么區(qū)別轧叽?
12苗沧、iOS 什么是KVO和KVC?他們的使用場景是什么?
13犹芹、iOS 通知和協(xié)議有哪些不同之處?
14崎页、iOS 應(yīng)用有哪些方式保存本地?cái)?shù)據(jù)?他們都應(yīng)用在哪些場景腰埂?
15飒焦、iOS 內(nèi)存的使用和優(yōu)化的注意事項(xiàng)?
16、iOS UIViewController的完整生命周期?
17屿笼、iOS 隊(duì)列和多線程的使用原理?
18牺荠、iOS SQLite中常用的SQL語句?
19、iOS frame和bounds有什么不同驴一?
20休雌、iOS view的touch事件有哪些?
21肝断、iOS 中的響應(yīng)者鏈的工作原理?
22杈曲、iOS property屬性的修飾符的作用?
23、iOS 對于Run Loop的理解?
24胸懈、iOS @synthesize担扑、@dynamic的理解?
25、iOS 對瀑布流的理解?
26趣钱、iOS 單例模式理解與使用?
27涌献、iOS 對沙盒的理解?
28、iOS 三方庫SDWebImage原理?
29首有、iSO 網(wǎng)絡(luò)七層協(xié)議?
30燕垃、iOS 如何進(jìn)行網(wǎng)絡(luò)消息推送?
31、iOS SVN的使用?
32井联、iOS 簡述APP發(fā)布的上架流程?
33卜壕、iOS 如何進(jìn)行真機(jī)調(diào)試?
34、iOS XML數(shù)據(jù)解析方式各有什么不同烙常,JSON解析有哪些框架轴捎?
35、iOS ASIHttpRequest军掂、AFNetWorking之間的區(qū)別?
36轮蜕、iOS HTTP協(xié)議的特點(diǎn),關(guān)于HTTP請求GET和POST的區(qū)別?
37蝗锥、iOS Scoket連接和HTTP連接的區(qū)別?
38跃洛、iOS TCP連接的三次握手?
39、iOS TCP和UDP的區(qū)別與聯(lián)系?
40终议、iOS Apple設(shè)備尺寸和編程尺寸?
41汇竭、iOS 線程與進(jìn)程的區(qū)別和聯(lián)系?
42葱蝗、iOS 定時(shí)器與線程的區(qū)別?
43、iOS 使用block有什么好處细燎?使用NSTimer寫出一個(gè)使用block顯示(在UILabel上)秒表的代碼?
44两曼、iOS 解決cell重用的問題?
45、iOS 怎樣使用performSelector傳入3個(gè)以上參數(shù)玻驻,其中一個(gè)為結(jié)構(gòu)體?
46悼凑、iOS 解釋self = [super init]方法?
47、iOS 在某個(gè)方法中 self.name = _name璧瞬,name = _name 它 們有區(qū)別嗎,為什么?
48户辫、iOS Core Data的6成員對象?
49、iOS iOS 開發(fā)中數(shù)據(jù)持久性有哪幾種?
50嗤锉、iOS isMemberOfClass 和 isKindOfClass 聯(lián)系與區(qū)別?
51渔欢、iOS @public、@protected瘟忱、@private 它們的含義與作用?
52奥额、iOS #include與#import的區(qū)別、**#import **與@class 的區(qū)別?
53访诱、iOS static垫挨、self、super關(guān)鍵字的作用?
54盐数、iOS NSNotification棒拂、Block伞梯、Delegate和KVO的區(qū)別?
55玫氢、iOS 代理的作用?
56、iOS 鍵路徑(keyPath)谜诫、鍵值編碼(KVC)漾峡、鍵值觀察(KVO)?
57、iOS 循環(huán)引用的產(chǎn)生原因喻旷,以及解決方法?
58生逸、iOS 類別的作用?
59、iOS 簡述類目category優(yōu)點(diǎn)和缺點(diǎn)?
60且预、iOS 簡述內(nèi)存管理基本原則?
61槽袄、iOS OC的理解與特性?
62、
63锋谐、
64遍尺、
65、
66涮拗、
67乾戏、
68迂苛、
69、
70鼓择、
71三幻、
72、
73呐能、
74念搬、
75、
76摆出、
77锁蠕、
78、iOS 你在項(xiàng)目中用過 GCD 嗎懊蒸?舉個(gè)例子
79荣倾、iOS Category 的實(shí)現(xiàn)原理,以及 Category 為什么只能加方法不能加屬性?
80骑丸、iOS block 的原理舌仍,block 的屬性修飾詞為什么用 copy,使用 block 時(shí)有哪些要注意的通危?
81铸豁、iOS 的熱更新方案有哪些?介紹一下實(shí)現(xiàn)原理?
82菊碟、iOS class A 繼承 class B节芥,class B 繼承 NSObject。畫出完整的類圖?
83逆害、iOS 細(xì)致地講一下事件傳遞流程?
84头镊、iOS main()之前的過程有哪些?
85、iOS Category 中有 load 方法嗎魄幕?load 方法是什么時(shí)候調(diào)用的相艇?load 方法能繼承嗎?
86纯陨、iOS 講一下你對 iOS 內(nèi)存管理的理解?
87坛芽、iOS 你在項(xiàng)目中是怎么優(yōu)化內(nèi)存的?
88翼抠、iOS 講講 RunLoop咙轩,項(xiàng)目中有用到嗎?
89阴颖、iOS 列表卡頓的原因可能有哪些活喊?你平時(shí)是怎么優(yōu)化的?
90膘盖、iOS 項(xiàng)目有沒有做過組件化胧弛?或者你是否調(diào)研過尤误?
91、iOS 講一下 OC 的消息機(jī)制?
92结缚、iOS ARC 都幫我們做了什么损晤?
93、iOS 實(shí)現(xiàn) isEqual 和 hash 方法時(shí)要注意什么红竭?
94尤勋、iOS 線程安全的處理手段有哪些?把你想到的都說一下?
95茵宪、iOS 說一下 OperationQueue 和 GCD 的區(qū)別最冰,以及各自的優(yōu)勢?
96、iOS Swift 中 struct 和 class 的區(qū)別?
97稀火、iOS Swift 是如何實(shí)現(xiàn)多態(tài)的暖哨?
98、iOS Swift 和 OC凰狞,各自的優(yōu)缺點(diǎn)有哪些篇裁?
99、iOS 如果讓你實(shí)現(xiàn) NSNotificationCenter赡若,講一下思路?
100达布、iOS 如果讓你實(shí)現(xiàn) GCD 的線程池,講一下思路?
101逾冬、iOS 為什么是三次握手黍聂?為什么是四次揮手?三次揮手不行嗎身腻?
102产还、iOS 講一下 HTTPS 密鑰傳輸流程?
103、iOS 講講 MVC霸株、MVVM雕沉、MVP集乔,以及你在項(xiàng)目里具體是怎么寫的去件?
104、iOS 系統(tǒng)框架里使用了哪些設(shè)計(jì)模式扰路?至少說6個(gè)?
105尤溜、iOS 你自己用過哪些設(shè)計(jì)模式?
106汗唱、iOS 哪一個(gè)項(xiàng)目技術(shù)點(diǎn)最能體現(xiàn)自己的技術(shù)實(shí)力宫莱?具體講一下
107、iOS 你在項(xiàng)目中遇到的最大的問題是什么哩罪?你是怎么解決的授霸?
108巡验、iOS 用 Alamofire 比直接使用 URLSession,優(yōu)勢是什么碘耳?
109显设、你是如何學(xué)習(xí) iOS 的?
110、iOS 和產(chǎn)品經(jīng)理辛辨、測試產(chǎn)生沖突時(shí)捕捂,你是怎么解決的?
111斗搞、iOS 手寫一下快排?
112指攒、iOS 遍歷一個(gè)樹,要求不能用遞歸?
113僻焚、iOS 找出兩個(gè)字符串的最大公共子字符串?
114允悦、
115、
116虑啤、
117澡屡、
118、
119咐旧、
120驶鹉、
121、
122铣墨、
123室埋、
124、
125伊约、
126姚淆、
127、
128屡律、iOS 為什么說Objective-C是一門動(dòng)態(tài)的語言腌逢?
129、iOS 進(jìn)程和線程的區(qū)別超埋?同步異步的區(qū)別搏讶?并行和并發(fā)的區(qū)別?
130霍殴、iOS 用StoryBoard開發(fā)界面有什么弊端媒惕?如何避免?
131来庭、iOS GCD的一些常用的函數(shù)妒蔚?(group,barrier,信號量肴盏,線程同步)?
132科盛、iOS block的實(shí)質(zhì)是什么?一共有幾種block菜皂?都是什么情況下生成的土涝?
133、iOS 為什么在默認(rèn)情況下無法修改被block捕獲的變量幌墓? __block都做了什么但壮?
134、iOS 模擬一下循環(huán)引用的一個(gè)情況常侣?block實(shí)現(xiàn)界面反向傳值如何實(shí)現(xiàn)蜡饵?
135、iOS 什么時(shí)候會(huì)報(bào)unrecognized selector錯(cuò)誤胳施?iOS有哪些機(jī)制來避免走到這一步溯祸?
136、iOS objc在向一個(gè)對象發(fā)送消息時(shí)舞肆,發(fā)生了什么焦辅?
137、iOS 能否向編譯后得到的類中增加實(shí)例變量椿胯?能否向運(yùn)行時(shí)創(chuàng)建的類中添加實(shí)例變量筷登?為什么
138、iOS runtime如何實(shí)現(xiàn)weak變量的自動(dòng)置nil哩盲?
139前方、iOS 給類添加一個(gè)屬性后,在類結(jié)構(gòu)體里哪些元素會(huì)發(fā)生變化廉油?
140惠险、iOS runloop是來做什么的?runloop和線程有什么關(guān)系抒线?主線程默認(rèn)開啟了runloop么班巩?子線程呢?
141嘶炭、iOS runloop的mode是用來做什么的抱慌?有幾種mode?
142旱物、iOS 蘋果是如何實(shí)現(xiàn)Autorelease Pool的遥缕?
143、iOS 為什么把NSTimer對象以NSDefaultRunLoopMode(kCFRunLoopDefaultMode)添加到主運(yùn)行循環(huán)以后宵呛,滑動(dòng)scrollview的時(shí)候NSTimer卻不動(dòng)了?
144夕凝、iOS isa指針宝穗?(對象的isa户秤,類對象的isa,元類的isa都要說)
145逮矛、iOS 運(yùn)行時(shí)能增加成員變量么鸡号?能增加屬性么?如果能须鼎,如何增加鲸伴?如果不能,為什么晋控?
146汞窗、iOS objc中向一個(gè)nil對象發(fā)送消息將會(huì)發(fā)生什么?(返回值是對象赡译,是標(biāo)量仲吏,結(jié)構(gòu)體)
147、iOS UITableview的優(yōu)化方法(緩存高度蝌焚,異步繪制裹唆,減少層級,hide只洒,避免離屏渲染)
148许帐、iOS 有沒有用過運(yùn)行時(shí),用它都能做什么毕谴?(交換方法舞吭,創(chuàng)建類,給新創(chuàng)建的類增加方法,改變isa指針)
149夹姥、iOS 看過哪些第三方框架的源碼曾沈?都是如何實(shí)現(xiàn)的?(如果沒有惧浴,問一下多圖下載的設(shè)計(jì))
150、iOS KVC的使用奕剃?實(shí)現(xiàn)原理衷旅?(KVC拿到key以后,是如何賦值的纵朋?知不知道集合操作符柿顶,能不能訪問私有屬性,能不能直接訪問_ivar)
151操软、
152嘁锯、
153、iOS UITableViewCell上有個(gè)UILabel,顯示NSTimer實(shí)現(xiàn)的秒表時(shí)間家乘,手指滾動(dòng)cell過程中蝗羊,label是否刷新,為什么仁锯?
154耀找、iOS 有a、b业崖、c野芒、d 4個(gè)異步請求,如何判斷a双炕、b狞悲、c、d都完成執(zhí)行雄家?如果需要a效诅、b、c趟济、d順序執(zhí)行乱投,該如何實(shí)現(xiàn)?
155顷编、iOS 一個(gè)view已經(jīng)初始化完畢戚炫,view上面添加了n個(gè)button,除用view的tag之外媳纬,還可以采用什么辦法來找到自己想要的button來修改button的值?
156双肤、iOS 淺復(fù)制和深復(fù)制的區(qū)別?
157、iOS MVC設(shè)計(jì)模式是什么钮惠? 你還熟悉什么設(shè)計(jì)模式茅糜?他們和MVC有什么不同的地方?
158素挽、 iOS 內(nèi)存管理的幾條原則時(shí)什么?按照默認(rèn)法則.哪些關(guān)鍵字生成的對象需要手動(dòng)釋放?在和property結(jié)合的時(shí)候如何有效的避免內(nèi)存泄露?
159蔑赘、iOS Objective-C如何對內(nèi)存管理的,說說你的看法以及你遇到的問題以及解決方法?
160、iOS 以scheduledTimerWithTimeInterval的方式觸發(fā)的timer预明,在滑動(dòng)頁面上的列表時(shí)缩赛,timer會(huì)暫停,為什么撰糠?該如何解決