1. 程式人生 > >面試了10名開發者後,總結了50道iOS面試題

面試了10名開發者後,總結了50道iOS面試題

前言:

金九銀十,金九已經過去,到了銀十,根據統計,很多人都會選擇在三月四月跳槽,原因有很多,企業年後會有大量員工離職,員工覺得老公司待遇不怎麼樣?薪資不夠高,想換個新環境等等原因,所以,十月份就變成了招聘與跳槽的旺季
前面一段時間給公司面試了10個iOS開發,自己總結了50道面試題,在此,我分享給大家,希望大家在四月份要找工作的朋友,我的這篇文章能給你有所幫助。

基礎:

1、如何令自己所寫的物件具有拷貝功能?
2、說說你理解weak屬性?
3、題目:Swift mutating關鍵字的使用?
4、UIView和CALayer是什麼關係?
5、下面的程式碼輸出什麼?
6、@synthesize 和 @dynamic 分別有什麼作用?
7、動態繫結
8、Category(類別)、 Extension(擴充套件)和繼承的區別
9、為什麼代理要用weak?代理的delegate和dataSource有什麼區別?block和代理的區別?
10、id和NSObject*的區別
11、如何令自己所寫的物件具有拷貝功能?
12、使用系統的某些block api(如UIView的block版本寫動畫時),是否也考慮引用迴圈問題?
13、用@property宣告的NSString(或NSArray,NSDictionary)經常使用copy關鍵字,為什麼?如果改用strong關鍵字,可能造成什麼問題?
14、UIView和 CALayer是什麼關係?
15、static有什麼作用?

底層:

16、main()之前的過程有哪些?
17、KVO基本原理?
18、Swift 下的如何使用 KVC?
19、:Swift有哪些模式匹配?
20、objc在向一個物件傳送訊息時,發生了什麼?
21、靜態庫的原理是什麼?你有沒有自己寫過靜態編譯庫,遇到了哪些問題?
22、runloop是來做什麼的?runloop和執行緒有什麼關係?主執行緒預設開啟了runloop麼?子執行緒呢?
23、不手動指定autoreleasepool的前提下,一個autorealese物件在什麼時刻釋放?(比如在一個vc的viewDidLoad中建立
24、不手動指定autoreleasepool的前提下,一個autorealese物件在什麼時刻釋放?(比如在一個vc的viewDidLoad中建立)
25、OC完整的訊息轉發機制+程式碼實現【暴擊】
26、、以+ scheduledTimerWithTimeInterval…的方式觸發的timer,在滑動頁面上的列表時,timer會暫定回撥,為什麼?如何解決?
27、如何手動觸發一個value的KVO
28、如何對定位和分析專案中影響效能的地方?以及如何進行效能優化?
29、序列並行,非同步同步的區別?
30、執行緒是什麼?程序是什麼?二者有什麼區別和聯絡?
31、RunLoop是什麼?
32、假設有一個字串aabcad,請寫一段程式,去掉字串中不相鄰的重複字串,即上述字串處理之後的輸出結果為:aabcd
@autoclosure(自動閉包)
34、iOS app啟動如何優化?
35、swift面試題:
36、怎樣防止反編譯?
37、UITableView效能優化,超實用

執行緒:

37、 不要阻塞主執行緒
38、談談你對多執行緒開發的理解?ios中有幾種實現多執行緒的方法?
39、程序和執行緒的區別?同步非同步的區別?並行和併發的區別?
40、ViewController生命週期
41、iOS 中的多執行緒
42、記憶體管理的幾條原則時什麼?按照預設法則.那些關鍵字生成的物件
需要手動釋放?在和property結合的時候怎樣有效的避免記憶體洩露?
誰申請,誰釋放
43、dispatch_barrier_async的作用是什麼?
44、如何用GCD同步若干個非同步呼叫?(如根據若干個url非同步載入多張圖片,然後在都下載完成後合成一張整圖)

http:

46、http與https的區別?
47、伺服器能否知道APNS推送後有沒有到達客戶端的方法?

app:

48、1.什麼方式可以看到上架App的標頭檔案?
2.閱讀過哪些框架的原始碼?能說說它的架構方式嗎
49、iOS iAP內購稽核可能失敗的問題
50、IAP內購中虛擬貨幣導致稽核無法通過的問題?

答案:

由於答案太多,我做了一個PDF文件,CSDN很少玩,不能上傳檔案,需要答案可以加我的iOS交流群624212887,獲取文件,也歡迎招聘者。

資料截圖

文件資料截圖

文件資料截圖