[轉]100 個 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+、6s、6s+、7、7+在硬件性能方面有何差異?這對注重性能的應用有何限制?

關于編程
  • 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+、7、7+以及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 ?)的作用是什么?

  • 模態視圖(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?

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 文章轉自極分享 更多精彩內容移步原文 論是對于公司還是開發者或設計師個人而言,面試都是一項耗時耗錢的項目,本文從...
    極分享閱讀 1,006評論 0 12
  • *面試心聲:其實這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個offer,總結起來就是把...
    Dove_iOS閱讀 27,211評論 30 472
  • 面試題9 1.描述應用程序的啟動順序。 2.為什么很多內置類如UITableViewControl的delegat...
    嘖嘖嘖_野獸閱讀 2,255評論 0 26
  • 非游戲類,初級面試常見問題1.你昨天/這周學習了什么?坦白點說,學習筆試面試后發現自己知識點不足的地方2.你為什么...
    cj2527閱讀 838評論 0 0
  • 周末回家看閨女兒,一到家,就給老公發了一段閨女的小視頻,解解他的相思之苦。誰知老公一看見閨女的視頻,立馬買動車票來...
    就是發泄情緒而已閱讀 239評論 0 0