標籤:
無論是對於公司還是開發人員或設計師個人而言,面試都是一項耗時耗錢的項目,本文從編程、設計、App Store等各個方面對iOS開發人員及設計師在面試時可能會遇到的問題進行了篩選與匯總。
一方面,能夠協助HR在短時間內擷取更多反饋資訊,更好地甄選合適人選,而 iOS 開發人員及設計師在尋找相關工作時,也可作為參考,為面試做好萬全準備。
常見問題
你昨天/這周學習了什嗎?
你為什麼熱衷於軟體開發?
你對哪一種控制系統比較熟悉?
是否參與過GitHub項目?
是否參與過GitHub或其他同類型網站的iOS開源項目?
請描述一下你的iOS應用開發流程。
是否熟知CocoaPods?它是什嗎?如何啟動並執行?
請概括一下你對軟體授權的理解,及其對軟體開發的影響。
請概括一下你在構建iOS應用時的測試過程。iOS應用如何?對其他語言、日期格式以及貨幣單位的支援?
請描述一下Instruments及其作用。
關於iOS技術
請解釋一下Handoff是什麼,並簡述它是如何?iOS、Mac/網頁應用互連的。
iCloud包含了哪些技術與服務?
iOS擴充是指?能否列舉一些熱門或常見的範例?
HealthKit是什嗎?
HomeKit是什嗎?
Apple Pay是什嗎?能否描述一下如何在應用中使用Apple Pay?
請解釋一下iOS應用沙箱機制。
VoiceOver是什嗎?請舉例解釋一下iOS中的協助工具功能(Accessibility)。開發人員如何使用這些功能?
iOS應用是如何?後台多任務處理(Multitasking)的?
Game Center針對iOS遊戲有哪些功能?
iBeacons是什嗎?
Cocoa/Cocoa Touch是什嗎?
請概括一下Core Audio,Core Data以及Core Location各是什麼。它們對iOS應用有何意義?
請描述SpriteKit和SceneKit的作用。
Metal是什嗎?
響應鏈(Responder Chain)是什嗎?它是如何發揮作用的?
按鈕和其他控制方式對哪些操作做出回應?
AppDelegate扮演著什麼樣的角色?
請解釋一下NSUserDefaults。就你而言,你會如何在磁碟中對數組對象進行序列化?
你會如何儲存使用者的認證資訊?
請問何為Keychain服務?
為什麼行動裝置上的緩衝和壓縮是不可或缺的?
請解釋一下~/Documents,~/Library和~/tmp。 iOS中的~屬於什麼目錄?
AirPlay是如何啟動並執行?換做是你,你會如何通過編程提高應用的實用性以及示範效果?
感應器,IO以及WiFi、撥號等串連方式如何在iOS平台上運作?它們有何利用價值?請扼要地談談你的觀點。
iPad 2,iPad mini 1-3,iPad Retina,iPad Air 2,iPhone 5、5S、6以及6+在硬體效能方面有何差異?這對注重效能的應用有何限制?
關於編程
Cocoa Touch包含什嗎?不包含什嗎?
為什麼Cocoa Touch的類名稱是以兩個大寫字母開頭的?
Swift和Objective-C分別是什嗎?兩者相比有何不同之處,又有何聯絡?
為什麼Optional在Swift語言中非常重要?
請解釋一下NSError。在Swift中,什麼情況下能使用NSError ,什麼情況下不能?
請說明如何使用Instancetype及其重要性。
在Swift中,什麼時候該用let,什麼時候該用var?
為什麼map函數必不可少?該在什麼情況下使用它?
你會選擇什麼工具來追蹤Bug?
如果在Cocoa中發現一個Bug,你會如何處理?
如果應用的新版本出現了Regression的情況,該如何補救?如何防止使用者在使用過程中遇到新的Bug?
Objective-C的類是怎麼執行的?Objective-C Runtime是如何?的?
iOS是如何提高安全性,保護使用者隱私資訊的?
應用可以下載並即刻顯示資料。如何根據MVC來判斷下載的最佳位置?
MVC對程式碼程式庫(Codebase)的設計有何影響?
Controller Life-Cycle以及View Life-cycle分別有哪些調試方法?
iOS使用的是哪些設計模式(Design Patterns)?你的程式碼程式庫使用的是哪些設計模式?
iOS提供哪些線程?如何充分利用這些線程?
請簡要描述一下UIScrollView的執行過程。它是如何響應手勢識別(Gesture Recognizer)、多點觸控(Multi-Touch)和Run Loop的?
你認為iOS需要添加或改進哪些API?
關於介面
iPhone5、6、6+以及iPad Air 2的螢幕解析度分別是多少?
解析度的計算單位是什嗎?
請解釋一下Interface Builder的作用以及NIB檔案的概念。
iOS UI的映像儲存類型是什嗎?
請描述一下Storyboard和標準NIB檔案的差別。
裝置狀態列(Device Status Bar)是什嗎?高度如何?是否透明?在手機通話或者導航狀態下,它是如何顯示的?
導覽列(Navigation Bar)是什嗎?能否拿出你的iPhone,指出你下載的哪些應用運用了導覽列?
選項卡(Tab Bar)和工具列(Toolbar)分別是什嗎?兩者之間有何共同點和不同點?
表視圖(Table View)是什嗎?集合視圖(Collection View)又是什嗎?
什麼時候用“彈出(Popover)”屬性最為合適?
Split-view Controller是什嗎?
選取器視圖(Picker View)適合存放哪類內容?
應該在什麼情況下使用標籤、文本域和文本視圖?
分段控制項(Segmented Control)的作用是什嗎?
模態視圖(Modal View)是什嗎?
iOS通知屬於什麼類型?
關於設計
iOS應用表徵圖是指什嗎?請儘可能詳細地描述一下。
最小尺寸和最大尺寸的應用表徵圖分別是什麼樣子的?
應用表徵圖能否包含透明的部分?
Newsstand的表徵圖與常規應用有何不同?
請解釋一下啟動畫面(Launch Images)。
自動布局(Auto Layout)的作用是什嗎?請概括一下它是如何啟動並執行。
設計軟體時為什麼要加上動畫?
請描述一下軟體設計中的互動和Feedback有什麼作用。
設計iPhone和iPad應用時,應分別考慮哪些因素?
請描述一下原型設計對於軟體開發的意義。其作用是什嗎?
關於App Store
在應用程式內購買(In-App Purchases)是怎麼回事?IAP能夠為使用者帶來哪些新體驗?
你是否在App Store上發布過應用?能否概括一下過程?
iTunes Connect是什嗎?
Provisioning Profiles是指?
App ID是什嗎?
iOS的開發和發布簽署憑證有何異同?
如何使用TestFlight?通過Ad-hoc發布應用的話,該如何使用UUID?
應何時驗證購買收據?
發布iAds(蘋果平台廣告)有哪些要求?
趣味問答
100個 iOS 程式員面試題匯總