iOS 面試問題
經過阿里,百度一面,二面後,我總結了150道iOS面試題。
金三銀四已經過去,根據統計,很多人都會選擇在三月四月跳槽,原因有很多,企業年後會有大量員工離職,員工覺得老公司待遇不怎麼樣?薪資不夠高,想換個新環境等等原因,所以,三月四月份就變成了招聘與跳槽的旺季。
前面一段時間自己的一面二面,自己總結了150道面試題,在此,我分享給大家,希望大家在七月月份要找工作的朋友,我的這篇文章能給你有所幫助。
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函式作用
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的優化主要從三個方面入手:
相關文章
- IOS面試經常被問到的問題iOS面試
- iOS面試題iOS面試題
- 移動開發—iOS日常面試問題移動開發iOS面試
- iOS Runloop(面試題)iOSOOP面試題
- iOS 中級面試題iOS面試題
- iOS面試題 --- 中級iOS面試題
- iOS 面試題總結iOS面試題
- iOS面試題精選iOS面試題
- iOS 面試題彙總iOS面試題
- 杭州ZoomVideo iOS面試題OOMIDEiOS面試題
- iOS 面試題解答二iOS面試題
- iOS面試中經常問的點 - 基礎問題(一)iOS面試
- 詢問面試官的面試問題面試
- iOS面試題整理01---- Objective-C 物件相關問題iOS面試題Object物件
- 面試反問問題面試
- iOS面試題總結(四)iOS面試題
- iOS面試題總結(三)iOS面試題
- iOS面試題總結(七)iOS面試題
- iOS面試題總結(五)iOS面試題
- iOS面試題總結(六)iOS面試題
- iOS面試題答案 --- 底層iOS面試題
- iOS底層面試題--RuntimeiOS面試題
- iOS底層面試題--RunLoopiOS面試題OOP
- iOS面試題 — 老生常談iOS面試題
- 2018 - iOS 面試題彙總iOS面試題
- iOS面試題總結(一)iOS面試題
- iOS探索 runtime面試題分析iOS面試題
- iOS底層面試題–RunLoopiOS面試題OOP
- iOS面試題總結(二)iOS面試題
- iOS面試問答集錦,從容應對各種面試技術難題!iOS面試
- 【面試】面試常見問題整理面試
- Typescript 面試問題TypeScript面試
- Pig面試問題面試
- Hive 面試問題Hive面試
- 測試面試問題(二)面試
- iOS 基礎面試題彙總iOS面試題
- 阿里體育iOS崗面試題阿里iOS面試題
- 面試疑難問題面試