2018 iOS 面試題大全

介于現(xiàn)在大部分小伙伴都在準備跳槽找工作,也在問我一些面試經(jīng)驗什么的,面試經(jīng)歷前面已經(jīng)分享過了,所以就整理一些面試題大全,希望可以幫到你。

1、iOS 應用導航模式有哪些?

2、iOS 中持久化方式有哪些?

3、iOS 單元測試框架有哪些?

4、iOS 7層協(xié)議,tcp四層協(xié)議及如何對應的?

5、iOS 你在項目中用過 runtime 嗎?舉個例子

6、iOS 什么是ARC?

7、iOS 說明并比較關鍵詞:atomatic, nonatomic

8、iOS 說明并比較關鍵詞:strong, weak, assign, copy

9、iOS 說明并比較關鍵詞:__weak,__block

10、iOS 什么情況下會出現(xiàn)循環(huán)引用?

11、iOS 類(class)和結(jié)構體(struct)有什么區(qū)別?

12、iOS? 什么是KVO和KVC?他們的使用場景是什么?

13、iOS 通知和協(xié)議有哪些不同之處?

14、iOS 應用有哪些方式保存本地數(shù)據(jù)?他們都應用在哪些場景?

15、iOS 內(nèi)存的使用和優(yōu)化的注意事項?

16、iOS UIViewController的完整生命周期?

17、iOS 隊列和多線程的使用原理?

18、iOS SQLite中常用的SQL語句?

19、iOS frame和bounds有什么不同?

20、iOS view的touch事件有哪些?

21、iOS 中的響應者鏈的工作原理?

22、iOS property屬性的修飾符的作用?

23、iOS? 對于Run Loop的理解?

24、iOS @synthesize、@dynamic的理解?

25、iOS 對瀑布流的理解?

26、iOS 單例模式理解與使用?

27、iOS 對沙盒的理解?

28、iOS 三方庫SDWebImage原理?

29、iOS 網(wǎng)絡七層協(xié)議?

30、iOS 如何進行網(wǎng)絡消息推送?

31、iOS SVN的使用?

32、iOS 簡述APP發(fā)布的上架流程?

33、iOS 如何進行真機調(diào)試?

34、iOS XML數(shù)據(jù)解析方式各有什么不同,JSON解析有哪些框架?

35、iOS ASIHttpRequest、AFNetWorking之間的區(qū)別?

36、iOS HTTP協(xié)議的特點,關于HTTP請求GET和POST的區(qū)別?

37、iOS Scoket連接和HTTP連接的區(qū)別?

38、iOS TCP連接的三次握手?

39、iOS TCP和UDP的區(qū)別于聯(lián)系?

40、iOS Apple設備尺寸和編程尺寸?

41、iOS 線程與進程的區(qū)別和聯(lián)系?

42、iOS 定時器與線程的區(qū)別?

43、iOS 使用block有什么好處?使用NSTimer寫出一個使用block顯示(在UILabel上)秒表的代碼?

44、iOS 解決cell重用的問題?

45、iOS 怎樣使用performSelector傳入3個以上參數(shù),其中一個為結(jié)構體?

46、iOS 解釋self = [super init]方法?

47、iOS 在某個方法中 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關鍵字的作用?

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)點和缺點?

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? 你在項目中用過 GCD 嗎?舉個例子

79、iOS Category 的實現(xiàn)原理,以及 Category 為什么只能加方法不能加屬性?

80、iOS block 的原理,block 的屬性修飾詞為什么用 copy,使用 block 時有哪些要注意的?

81、iOS? 的熱更新方案有哪些?介紹一下實現(xiàn)原理?

82、iOS class A 繼承 class B,class B 繼承 NSObject。畫出完整的類圖?

83、iOS 細致地講一下事件傳遞流程?

84、iOS main()之前的過程有哪些?

85、iOS Category 中有 load 方法嗎?load 方法是什么時候調(diào)用的?load 方法能繼承嗎?

86、iOS 講一下你對 iOS 內(nèi)存管理的理解?

87、iOS 你在項目中是怎么優(yōu)化內(nèi)存的?

88、iOS 講講 RunLoop,項目中有用到嗎?

89、iOS 列表卡頓的原因可能有哪些?你平時是怎么優(yōu)化的?

90、iOS 項目有沒有做過組件化?或者你是否調(diào)研過?

91、iOS 講一下 OC 的消息機制?

92、iOS ARC 都幫我們做了什么?

93、iOS 實現(xiàn) isEqual 和 hash 方法時要注意什么?

94、iOS 線程安全的處理手段有哪些?把你想到的都說一下?

95、iOS 說一下 OperationQueue 和 GCD 的區(qū)別,以及各自的優(yōu)勢?

96、iOS Swift 中 struct 和 class 的區(qū)別?

97、iOS Swift 是如何實現(xiàn)多態(tài)的?

98、iOS Swift 和 OC,各自的優(yōu)缺點有哪些?

99、iOS 如果讓你實現(xiàn) NSNotificationCenter,講一下思路?

100、iOS 如果讓你實現(xiàn) GCD 的線程池,講一下思路?

101、iOS 為什么是三次握手?為什么是四次揮手?三次揮手不行嗎?

102、iOS 講一下 HTTPS 密鑰傳輸流程?

103、iOS 講講 MVC、MVVM、MVP,以及你在項目里具體是怎么寫的?

104、iOS 系統(tǒng)框架里使用了哪些設計模式?至少說6個?

105、iOS 你自己用過哪些設計模式?

106、iOS 哪一個項目技術點最能體現(xiàn)自己的技術實力?具體講一下

107、iOS 你在項目中遇到的最大的問題是什么?你是怎么解決的?

108、iOS 用 Alamofire 比直接使用 URLSession,優(yōu)勢是什么?

109、你是如何學習 iOS 的?

110、iOS 和產(chǎn)品經(jīng)理、測試產(chǎn)生沖突時,你是怎么解決的?

111、iOS 手寫一下快排?

112、iOS 遍歷一個樹,要求不能用遞歸?

113、iOS 找出兩個字符串的最大公共子字符串?

114、

115、

116、

117、

118、

119、

120、

121、

122、

123、

124、

125、

126、

127、

128、iOS 為什么說Objective-C是一門動態(tài)的語言?

129、iOS 進程和線程的區(qū)別?同步異步的區(qū)別?并行和并發(fā)的區(qū)別?

130、iOS 用StoryBoard開發(fā)界面有什么弊端?如何避免?

131、iOS GCD的一些常用的函數(shù)?(group,barrier,信號量,線程同步)?

132、iOS block的實質(zhì)是什么?一共有幾種block?都是什么情況下生成的?

133、iOS 為什么在默認情況下無法修改被block捕獲的變量? __block都做了什么?

134、iOS 模擬一下循環(huán)引用的一個情況?block實現(xiàn)界面反向傳值如何實現(xiàn)?

135、iOS 什么時候會報unrecognized selector錯誤?iOS有哪些機制來避免走到這一步?

136、iOS? objc在向一個對象發(fā)送消息時,發(fā)生了什么?

137、iOS 能否向編譯后得到的類中增加實例變量?能否向運行時創(chuàng)建的類中添加實例變量?為什么

138、iOS runtime如何實現(xiàn)weak變量的自動置nil?

139、iOS 給類添加一個屬性后,在類結(jié)構體里哪些元素會發(fā)生變化?

140、iOS runloop是來做什么的?runloop和線程有什么關系?主線程默認開啟了runloop么?子線程呢?

141、iOS runloop的mode是用來做什么的?有幾種mode?

142、iOS 蘋果是如何實現(xiàn)Autorelease Pool的?

143、iOS 為什么把NSTimer對象以NSDefaultRunLoopMode(kCFRunLoopDefaultMode)添加到主運行循環(huán)以后,滑動scrollview的時候NSTimer卻不動了?

144、iOS isa指針?(對象的isa,類對象的isa,元類的isa都要說)

145、iOS 運行時能增加成員變量么?能增加屬性么?如果能,如何增加?如果不能,為什么?

146、iOS objc中向一個nil對象發(fā)送消息將會發(fā)生什么?(返回值是對象,是標量,結(jié)構體)

147、iOS UITableview的優(yōu)化方法(緩存高度,異步繪制,減少層級,hide,避免離屏渲染)

148、iOS 有沒有用過運行時,用它都能做什么?(交換方法,創(chuàng)建類,給新創(chuàng)建的類增加方法,改變isa指針)

149、iOS 看過哪些第三方框架的源碼?都是如何實現(xiàn)的?(如果沒有,問一下多圖下載的設計)

150、iOS KVC的使用?實現(xiàn)原理?(KVC拿到key以后,是如何賦值的?知不知道集合操作符,能不能訪問私有屬性,能不能直接訪問_ivar)

151、

152、

153、iOS UITableViewCell上有個UILabel,顯示NSTimer實現(xiàn)的秒表時間,手指滾動cell過程中,label是否刷新,為什么?

154、iOS 有a、b、c、d 4個異步請求,如何判斷a、b、c、d都完成執(zhí)行?如果需要a、b、c、d順序執(zhí)行,該如何實現(xiàn)?

155、iOS 一個view已經(jīng)初始化完畢,view上面添加了n個button,除用view的tag之外,還可以采用什么辦法來找到自己想要的button來修改button的值?

156、iOS? 淺復制和深復制的區(qū)別?

157、iOS? MVC設計模式是什么? 你還熟悉什么設計模式?他們和MVC有什么不同的地方?

158、 iOS 內(nèi)存管理的幾條原則時什么?按照默認法則.哪些關鍵字生成的對象需要手動釋放?在和property結(jié)合的時候如何有效的避免內(nèi)存泄露?

159、iOS Objective-C如何對內(nèi)存管理的,說說你的看法以及你遇到的問題以及解決方法?

160、iOS 以scheduledTimerWithTimeInterval的方式觸發(fā)的timer,在滑動頁面上的列表時,timer會暫停,為什么?該如何解決

我是曉媛,希望你早點找到自己心儀的工作。

最后,預祝大家元宵節(jié)快樂!身為程序員的你會怎么度過元宵佳節(jié)呢?明天會出一篇“程序員是怎么過元宵節(jié)的”,敬請期待!

著作權歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權,非商業(yè)轉(zhuǎn)載請注明出處。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容