六個方向關於iOS100個面試題,你都會了嗎?

常見問題

你昨天/這周學習了什麼?

你為什麼熱衷於軟體開發?

你對哪一種控制系統比較熟悉?

是否參與過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?


推薦閱讀:

TAG:iOS | iOS開發 | 移動開發 |