天天看點

100個iOS開發面試題彙總

100個iOS開發面試題彙總

關于iOS開發面試,不管對于招聘和應聘來說,面試都是很重要的一個環節,特别對于開發者來說,面試中的技術問題環節不僅是企業對應聘者技能和積累的考察,也是一個開發者自我檢驗的好機會。

無論是對于公司還是開發者或設計師個人而言,面試都是一項耗時耗錢的項目,從程式設計、設計、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(蘋果平台廣告)有哪些要求?

  趣味問答

  最近有沒有開發什麼好玩的東西?你最引以為豪的作品是什麼?

  談一談你常用的開發工具都有哪些優勢?

  你最敬佩的獨立Mac或者iOS應用開發者是誰?

  最喜歡什麼項目?哪種類型的?

  你覺得Xcode有哪些需要改進的地方?

  iOS上你最喜歡哪些API?

  是否有最中意的錯誤報告?

  你最愛以哪種方式來檢驗一項新技術是否好用?

為什麼詞典被稱作Dictionaries,而不是HashTable或HashMap?

在為團隊尋求進階别的開發工程師或者Leader類的職位時,這些問題的回答會是對應聘者技術深度和廣度的一個有效的考察。同樣地,如果你的團隊在某塊技術上比較偏重,但是技術團隊的No.1的工程師卻不能很好地回答這些問題的話,可能也會是需要檢讨技術層的一個信号。

繼續閱讀