200道iOS面試題面試題整理,底層、技術亮點公司需要的這裡都有

来源:https://www.cnblogs.com/IOSkf/archive/2020/05/07/12843298.html
-Advertisement-
Play Games

100家知名企業今年來iOS面試題合集: 你要的這裡都有; 企業要的這裡也有; 從基礎開始到進階、深入底層 整理出188個面試題,全是乾貨 目錄展示: 1、swift和oc的區別 2、編譯鏈接 3、synthesize & denamic 4、在項目開發中常用的開發工具有哪些? 5、UITableV ...


100家知名企業今年來iOS面試題合集:

你要的這裡都有;

企業要的這裡也有;

從基礎開始到進階、深入底層

整理出188個面試題,全是乾貨

目錄展示:

1、swift和oc的區別

2、編譯鏈接

3、synthesize & denamic

4、在項目開發中常用的開發工具有哪些?

5、UITableView & UICollection

6、NSProxy & NSObject

7、Object & Swift

8、傳值通知 & 推送通知(本地&遠程)

9、第三方庫 & 第三方平臺

10、NSCache & NSDcitionary

11、 UIView的setNeedsDisplay和setNeedsLayout方法

12、UILayer & UIView

13、layoutSubViews & drawRects

14、UDID & UUID

15、CPU & GPU

16、點(pt)& 像素(px)

17、屬性與成員變數

18、int和NSInteger的區別

(1)import和include

(2)@class

(3)全局 & 靜態變數

19、類和對象

(1)分類拓展協議中哪些可以聲明屬性?

(2)繼承和類別的區別

(3)分類的作用

(4)分類的局限性

20、category & extension

21、Foundation

(1)字元串

(2)字元串截取

(3)格式

22、NSArray和NSDictionary

(1)iOS遍曆數組/字典的方法

(2)NSValue NSNumber

(3)其它

(4)如何避免迴圈引用

23、CFSocket使用有哪幾個步驟

24、Core Foundation中提供了哪幾種操作Socket的方法?

25、解析XML文件有哪幾種方式?

26、什麼是沙盒模型?哪些操作是屬於私有api範疇?

27、在一個對象的方法裡面:self.name= “object”;和 name =”object” 有什麼不同嗎?

28、請簡要說明viewDidLoad和viewDidUnload何時調用

29、創建控制器、視圖的方式

30、簡述記憶體分區情況

31、隊列和棧有什麼區別

32、iOS的系統架構

33、控制項主要響應3種事件

34、xib文件的構成分為哪3個圖標?都具有什麼功能

35、簡述視圖控制項器的生命周期

36、app 項目的生命周期

(1)應用的生命周期

(2)簡要說明一下APP的啟動過程,main文件說起,main函數中有什麼函數?作用是什麼?

(3)UIApplicationMain函數作用

(4)main函數作用

學習的圈子特別重要!!

作為一個開發者,有一個學習的氛圍跟一個交流圈子特別重要,這是一個我的iOS交流群:761407670 進群密碼‘博客’,不管你是小白還是大牛歡迎入駐 ,分享BAT,阿裡面試題、面試經驗,討論技術, 大家一起交流學習成長!

37、 動畫有基本類型有哪幾種;表視圖有哪幾種基本樣式。

38、實現簡單的表格顯示需要設置UITableView的什麼屬性、實現什麼協議?

39、Cocoa Touch提供了哪幾種Core Animation過渡類型?

40、UIView與CLayer有什麼區別?

41、Quatrz 2D的繪圖功能的三個核心概念是什麼並簡述其作用

42、iPhone OS主要提供了幾種播放音頻的方法?

43、使用AVAudioPlayer類調用哪個框架、使用步驟?

44、有哪幾種手勢通知方法、寫清楚方法名?

45、ViewController的didReceiveMemoryWarning怎麼被調用

46、什麼時候用delegate,什麼時候用Notification?

47、用預處理指令#define聲明一個常數,用以表明1年中有多少秒(忽略閏年問題)

48、寫一個”標準"巨集MIN ,這個巨集輸入兩個參數並返回較小的一個。

49、關鍵字const有什麼含意?修飾類呢?static的作用,用於類呢?還有extern c的作用

50、關鍵字volatile有什麼含意?並給出三個不同的例子

51、一個參數既可以是const還可以是volatile嗎? 一個指針可以是volatile 嗎?解釋為什麼。

52、static 關鍵字的作用

53、列舉幾種進程的同步機制,並比較其優缺點。

54、進程之間通信的途徑

55、進程死鎖的原因

56、死鎖的4個必要條件

57、死鎖的處理

58、cocoa touch框架

59、自動釋放池是什麼,如何工作

60、sprintf,strcpy,memcpy使用上有什麼要註意的地方

61、你瞭解svn,cvs等版本控制工具麽?

62、什麼是push

63、靜態鏈接庫

64、OC三大特性

(1)封裝_點語法

(2)繼承

(3)多態

65、OC中如何實現多態

66、Objective-C的優缺點

67、對於OC,你認為最大的優點和最大的不足是什麼?對於不足之處,現在有沒有可用的方法繞過這些不足來實現需求。如果可以話,有沒有考慮或者實現過重新實現OC的功能,如果有,具體怎麼做?

68、oc中可修改和不可以修改類型

69、我們說的oc是動態運行時語言是什麼意思?

70、通知和協議的不同之處?

71、什麼是推送消息?

72、關於多態性

73、什麼是謂詞?

74、做過的項目是否涉及網路訪問功能,使用什麼對象完成網路功能?

75、簡單介紹下NSURLConnection類及+sendSynchronousRequest:returningResponse:error:與– initWithRequest:delegate:兩個方法的區別?

76、談談Object-C的記憶體管理方式及過程?

77、Object-C有私有方法嗎?私有變數呢?

78、說說響應鏈

79、時間傳遞 & 響應者鏈

80、frame和bounds有什麼不同?

81、方法和選擇器有何不同?

82、OC的垃圾回收機制?

83、什麼是延遲載入?

84、是否在一個視圖控制器中嵌入兩個tableview控制器?

85、一個tableView是否可以關聯兩個不同的數據源?你會怎麼處理?

86、什麼時候使用NSMutableArray,什麼時候使用NSArray?

87、給出委托方法的實例,並且說出UITableVIew的Data Source方法

88、在應用中可以創建多少autorelease對象,是否有限制?

89、如果我們不創建記憶體池,是否有記憶體池提供給我們?

90、什麼時候需要在程式中創建記憶體池?

91、類NSObject的那些方法經常被使用?

92、什麼是簡便構造方法?

93、如何使用Xcode設計通用應用?

94、 UIView的動畫效果有那些?

95、Object-C有多繼承嗎?沒有的話用什麼代替?cocoa 中所有的類都是NSObject 的子類

96、記憶體管理 Autorelease、retain、copy、assign的set方法和含義?

97、C和obj-c 如何混用

98、類別的作用?繼承和類別在實現中有何區別?

99、類別和類擴展的區別。

100、oc中的協議和java中的介面概念有何不同?

101、深拷貝與前拷貝區別

(1)什麼是深拷貝淺拷貝

(2)字元串什麼時候使用copy,strong

(3)字元串所在記憶體區域

(4)mutablecopy和copy @property(copy) NSMutableArray *arr;這樣寫有什麼問題

(5)如何讓自定義類可以使用copy修飾符

102、對於語句NSString*obj = [[NSData alloc] init]; obj在編譯時和運行時分別時什麼類型的對象?

103、#import 跟#include 又什麼區別,@class呢, #import<> 跟 #import”"又什麼區別?

104、Objective-C的類可以多重繼承麽?可以實現多個介面麽?Category是什麼?重寫一個類的方法用繼承好還是分類好?為什麼?

105、 #import 跟#include 又什麼區別,@class呢, #import<> 跟 #import””又什麼區別?

106、寫一個setter方法用於完成@property (nonatomic,retain)NSString *name,寫一個setter方法用於完成@property(nonatomic,copy)NSString *name

107、常見的Objective-C的數據類型有那些, 和C的基本數據類型有什麼區別?如:NSInteger和int

108、id 聲明的對象有什麼特性?

109、Objective-C如何對記憶體管理的,說說你的看法和解決方法?

110、原子(atomic)跟非原子(non-atomic)屬性有什麼區別?

111、看下麵的程式,第一個NSLog會輸出什麼?這時str的retainCount是多少?第二個和第三個呢? 為什麼?

112、記憶體管理的幾條原則時什麼?按照預設法則.那些關鍵字生成的對象需要手動釋放?在和property結合的時候怎樣有效的避免記憶體泄露?

113、如何對iOS設備進行性能測試?

114、設計模式

(1)mvc模式

(2)單例模式

(3)mvvm模式

(4)觀察者模式

(5)工廠模式

(6)代理模式

(7)策略模式

(8)適配器模式

(9)模版模式

(10)外觀模式

(11)創建模式

(12)MVP模式

115、MVVM模式原理分析

116、說說常用的幾種傳值方式

117、什麼時候用delegate,什麼時候用Notification

118、對於單例的理解

119、從設計模式角度分析代理,通知和KVO區別?ios SDK 提供 的framework使用了哪些設計模式,為什麼使用?有哪些好處和壞處?

120、KVO,NSNotification,delegate及block區別

121、運行時(runTime)

122、runtime/消息轉發機制

(1)runtime

1.1、什麼是runtime

1.2、runtime乾什麼用,使用場景

(2)消息機制

2.1、消息轉發的原理

2.2、SEL isa super cmd 是什麼

(3)動態綁定

123、使用bugly進行崩潰分析

124、jenkens 持續打包

125、KVO & KVC

(1)底層實現

(2)KVO概述

(3)KVC概述

126、什麼是KVO和KVC?

KVO和KVC

(1)如何調用私有變數,如何修改系統的只讀屬性,KVC的查找順序

(2)什麼是鍵-值,鍵路徑是什麼

(3)kvo的實現機制

(4)KVO計算屬性,設置依賴鍵

(5)KVO集合屬性

(6)kvo使用場景

127、SDWebImage(SDWebImage的實現機制)

(1)主要功能

(2)緩存

(3)記憶體緩存與磁碟緩存

128、框架 SDWebimage的緩存機制

129、網路安全

密碼的安全原則

130、多線程

(1)多線程概念

(2)多線程的作用

(3)使用場景

131、NSOperationQueue和GCD的區別是什麼

132、GCD與NSThread的區別

133、進程和線程的區別與聯繫是什麼?

134、別非同步執行兩個耗時操作,等兩次耗時操作都執行完畢後,再回到主線程執行操作. 使用隊列組(dispatch_group_t)快速,高效的實現上述需求

135、在項目什麼時候選擇使用GCD,什麼時候選擇NSOperation?

136、對比iOS中的多線程技術

137、多線程優缺點

138、iOS中的延遲操作

139、串列隊列同步執行和非同步主隊列

140、資源搶奪解決方案

141、dispatch_barrier_async的作用是什麼?

142、在多線程Core Data中,NSC,MOC,NSObjectModel哪些需要線上程中創建或者傳遞?你是用什麼策越來實現的?

143、+(void)load與 +(void)initialize區別load 和 initialize方法的區別

144、http的post與區別與聯繫,實踐中如何選擇它們?

145、說說關於UDP/TCP的區別?

146、http和scoket通信的區別?socket連接相關庫,TCP,UDP的連接方法,HTTP的幾種常用方式?

147、HTTP請求常用的幾種方式

148、block

(1)使用block時什麼情況會發生引用迴圈,如何解決?

(2)在block內如何修改block外部變數?

(3)Block & MRC-Block

(4)什麼是block

(5)block 實現原理

(6)關於block

(7)使用block和使用delegate完成委托模式有什麼優點

(8)多線程與block

(9)談談對Block 的理解?並寫出一個使用Block執行UIVew動畫?

(10)寫出上面代碼的Block的定義(接上題)

149、Weak、strong、copy、assign 使用

(1)什麼情況使用 weak 關鍵字,相比 assign 有什麼不同?

(2)怎麼用 copy 關鍵字?

(3)weak & strong

(4)這個寫法會出什麼問題: @property (copy) NSMutableArray *array

(5) 如何讓自己的類用 copy 修飾符?如何重寫帶 copy 關鍵字的 setter?

(6) @property 的本質是什麼?ivar、getter、setter 是如何生成並添加到這個類中的

(7)ivar、getter、setter 是如何生成並添加到這個類中的?

(8)用@property聲明的NSString(或NSArray,NSDictionary)經常使用copy關鍵字,為什麼?如果改用strong關鍵字,可能造成什麼問題?

(9)@protocol 和 category 中如何使用 @property

(10)runtime如何通過selector找到對應的IMP地址?

(11)retain和copy區別

(12)copy和strong的使用?

(13)NSString和NSMutableString,前者線程安全,後者線程不安全。

(14)readwrite,readonly,assign,retain,copy,weak ,strong,nonatomic 屬性的作用

150、OC與JS的交互(iOS與H5混編)

TableView性能優化

UITableView核心思想

UITableView的優化主要從三個方面入手:

151、TableView為什麼會卡?

152、UITableView

(1)UITableView最核心的思想

(2)定義高度

(3)自定義高度原理

(4)老生常談之UITableView的性能優化

(5)cell高度的計算

(5.1)定高的cell和動態高度的cell

(6)TableView渲染

(7)減少視圖的數目

(8)減少多餘的繪製操作

(9)不要給cell動態添加subView

(10)非同步化UI,不要阻塞主線程

(11)滑動時按需載入對應的內容

(12)離屏渲染的問題

(13)離屏渲染優化方案

153、環信SDK使用

154、藍牙

155、在iPhone應用中如何保存數據?

156、什麼是coredata?

157、 什麼是NSManagedObject模型?

158、什麼是NSManagedobjectContext?

159、 iOS平臺怎麼做數據的持久化?coredata 和sqlite有無必然聯繫?coredata是一個關係型資料庫嗎?

160、CoreData & SQLite3

161、數據存儲

(1)數據存儲技術

(1.1)數據存儲的幾種方式

(1.2)各自特點(面試考點)

(1.3)偏好設置(面試考點)

(1.4)歸檔(面試考點)

(2)資料庫技術(SQLite&CoreData)

162、Objective-C堆和棧的區別?

163、記憶體泄露 & 記憶體溢出

164、堆 & 棧

(1)堆棧空間分配區別

(2)堆棧緩存方式區別

(3)堆棧數據結構區別

165、記憶體管理

(1)記憶體區域

(1.1)堆和棧的區別

(1.2)iOS記憶體區域

(2)字元串的記憶體管理

(3)你是如何優化記憶體管理

(4)迴圈引用

(5)autorelease的使用

(5.1)工廠方法為什麼不釋放對象

(5.2)ARC下autorelease的使用場景

(5.3)自動釋放池如何工作

(5.4)避免記憶體峰值

(5.5)ARC和MRC的混用

(5.6)NSTimer的記憶體管理

(5.7)ARC的實現原理

166、Runloop

167、fmmpeg框架

168、fmdb框架

169、320框架

170、UIKit和CoreAnimation和CoreGraphics的關係是什麼?在開發中是否使用過CoreAnimation和CoreGraphics?

171、trasform

172、點講動畫和layer ,view的區別

173、圖層與視圖

174、平行的層級關係

175、圖層的能力

176、使用圖層

177、核心繪圖

(1)View和layer的區別

(2)new和alloc init的區別

178、動畫

179、UICollectionView

(1)何實現瀑布流,流水佈局

(2)和UITableView的使用區別

180、UIImage

181、webview

182、描述九宮格演算法

183、實現圖片輪播圖

184、iOS網路框架

185、網路

(1)網路基礎

(2)網路傳輸

(3)AFN

186、AFNetworking & ASIHttpRequest & MKNetWorking

(1)底層實現

(2)對伺服器返回的數據處理

(3)監聽請求過程

(4)在文件下載和文件上傳的使用難易度

(5)網路監控

(6)ASI提供的其他實用功能

(7)MKNetworkKit

187、性能優化

188、演算法

>

如果你依然在編程的世界里迷茫,不知道自己的未來規劃,小編給大家推薦一個IOS高級交流群,裡面可以與大神一起交流並走出迷茫。小白可進群免費領取學習資料,看看前輩們是如何在編程的世界里傲然前行!
群內提供數據結構與演算法、底層進階、swift、逆向、整合面試題等免費資料
附上一份收集的各大廠面試題(附答案) ! 群文件直接獲取
各大廠面試題

學習的圈子特別重要!!

作為一個開發者,有一個學習的氛圍跟一個交流圈子特別重要,這是一個我的iOS交流群:761407670 進群密碼‘博客’,不管你是小白還是大牛歡迎入駐 ,分享BAT,阿裡面試題、面試經驗,討論技術, 大家一起交流學習成長!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 來源:http://www.postgres.cn/docs/11/ 5.1. 表基礎 SQL並不保證表中行的順序。當一個表被讀取時,表中的行將以非特定順序出現,除非明確地指定需要排序。 嘗試移除一個不存在的表會引起錯誤。然而,在SQL腳本中在創建每個表之前無條件地嘗試移除它的做法是很常見的,即使發 ...
  • 本篇博客是Redis系列的第6篇,主要講解以下內容: 1. 資料庫數量 2. 切換目標資料庫 3. 設置鍵的過期時間 4. 移除鍵的過期時間 本系列的前5篇可以點擊以下鏈接查看: "Redis系列(一):Redis簡介及環境安裝" "Redis系列(二):Redis的5種數據結構及其常用命令" "R ...
  • DataHub 首先,阿裡雲也有一款名為DataHub的產品,是一個流式處理平臺,本文所述DataHub與其無關。 數據治理是大佬們最近談的一個火熱的話題。不管國家層面,還是企業層面現在對這個問題是越來越重視。數據治理要解決數據質量,數據管理,數據資產,數據安全等等。而數據治理的關鍵就在於 元數據管 ...
  • 表結構 student(StuId,StuName,StuAge,StuSex) 學生表 teacher(TId,Tname) 教師表 course(CId,Cname,C_TId) 課程表 sc(SId,S_CId,Score) 成績表 問題五:查詢沒學過“葉平”老師課的同學的學號、姓名 SELE ...
  • C快速複習,知識點總結 數據類型 基本數據類型 類型名稱說明char 字元類型存放字元的ASCII碼 int 整型存放有符號整數short短整型存放有符號整數long長整型存放有符號整數long long存放有符號整數 float 單精度浮點型存放精度不高的小數 double 雙精度浮點型存放精度較 ...
  • 一、PropertyValuesHolder 閱讀本文需要上一文Android屬性動畫的基礎,這樣才可以明白接下來要講什麼。 1.理解和使用 是ObjectAnimation類似的一個方法,只是少了一個target,就是要執行的控制項。看看正常的使用方法:會同時執行全部的Holder 2.方法和參數 ...
  • 背景介紹 :在普通的iOS開發組中,一般測試機都不止一臺,但是我們在開發的時候,不可能每台測試機時刻保持最新的代碼,這就出現了一個問題,當測試測出問題的時候,(或者產品突然拿去點點看的時候出了問題)如果不知道當前的版本,可能不確定是什麼時候出的問題。 解決方案:如果當前環境是測試服的時候,展示一個全 ...
  • CtsSecurityTestCases ListeningPortsTest定位tcp埠與pid 【問題描述】 cts失敗項 armeabi v7a CtsSecurityTestCases android.security.cts.ListeningPortsTest testNoListen ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...