100個iOS開發/設計面試題彙總,你將如何做答?

原文:

http://www.csdn.net/article/2015-01-19/2823604-ios-interview-questions

常見問題

  • 你昨天/這周學習了什麼?
  • 你爲何熱衷於軟件開發?
  • 你對哪種控制系統比較熟悉?
  • 是否參與過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 五、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?

 

關於界面

 

  • iPhone五、六、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(蘋果平臺廣告)有哪些要求?

 

趣味問答

 

  • 最近有沒有開發什麼好玩的東西?你最引覺得豪的做品是什麼?
  • 談一談你經常使用的開發工具都有哪些優點?
  • 你最敬佩的獨立Mac或者iOS應用開發者是誰?
  • 最喜歡什麼項目?哪一種類型的?
  • 你以爲Xcode有哪些須要改進的地方?
  • iOS上你最喜歡哪些API?
  • 是否有最中意的錯誤報告?
  • 你最愛以哪一種方式來檢驗一項新技術是否好用?
  • 爲何詞典被稱做Dictionaries,而不是HashTable或HashMap?
相關文章
相關標籤/搜索