100個iOS開發/設計面試題匯總,你將如何作答?
原文 http://www.csdn.net/article/2015-01-19/2823604-ios-interview-questions
無論是對于公司還是開發者或設計師個人而言,面試都是一項耗時耗錢的項目,本文作者Cameron Banga從編程、設計、App Store等各個方面對iOS開發者及設計師在面試時可能會遇到的問題進行了篩選與匯總。一方面,能夠幫助HR在短時間內獲取更多反饋信息,更好地甄選合 適人選,而iOS開發者及設計師在尋找相關工作時,也可作為參考,為面試做好萬全準備。
<p> <img src="https://simg.open-open.com/show/a63880197b7791fcb8a76dcece5efc56.jpg" alt="100個iOS開發/設計面試題匯總,你將如何作答?" width="500" height="328" /> </p>
<h3> <span>常見問題</span> </h3>
<ul>
<li> <span>你昨天/這周學習了什么?</span> </li>
<li> <span>你為什么熱衷于軟件開發?</span> </li>
<li> <span>你對哪一種控制系統比較熟悉?</span> </li>
<li> <span>是否參與過GitHub項目?</span> </li>
<li> <span>是否參與過GitHub或其他同類型網站的iOS開源項目?</span> </li>
<li> <span>請描述一下你的iOS應用開發流程。</span> </li>
<li> <span>是否熟知CocoaPods?它是什么?如何運行的?</span> </li>
<li> <span>請概括一下你對軟件授權的理解,及其對軟件開發的影響。</span> </li>
<li> <span>請概括一下你在構建iOS應用時的測試過程。iOS應用如何實現對其他語言、日期格式以及貨幣單位的支持?</span> </li>
<li> <span>請描述一下Instruments及其作用。</span> </li>
</ul>
<h3> <span>關于iOS技術</span> </h3>
<ul>
<li> <span>請解釋一下Handoff是什么,并簡述它是如何實現iOS、Mac/網頁應用互通的。</span> </li>
<li> <span>iCloud包含了哪些技術與服務?</span> </li>
<li> <span>iOS擴展是指?能否列舉一些熱門或常見的范例?</span> </li>
<li> <span>HealthKit是什么?</span> </li>
<li> <span>HomeKit是什么?</span> </li>
<li> <span>Apple Pay是什么?能否描述一下如何在應用中使用Apple Pay?</span> </li>
<li> <span>請解釋一下iOS應用沙盒機制。</span> </li>
<li> <span>VoiceOver是什么?請舉例解釋一下iOS中的輔助功能(Accessibility)。開發者如何使用這些功能?</span> </li>
<li> <span>iOS應用是如何實現后臺多任務處理(Multitasking)的?</span> </li>
<li> <span>Game Center針對iOS游戲有哪些功能?</span> </li>
<li> <span>iBeacons是什么?</span> </li>
<li> <span>Cocoa/Cocoa Touch是什么?</span> </li>
<li> <span>請概括一下Core Audio,Core Data以及Core Location各是什么。它們對iOS應用有何意義?</span> </li>
<li> <span>請描述SpriteKit和SceneKit的作用。</span> </li>
<li> <span>Metal是什么?</span> </li>
<li> <span>響應鏈(Responder Chain)是什么?它是如何發揮作用的?</span> </li>
<li> <span>按鈕和其他控制方式對哪些操作做出回應?</span> </li>
<li> <span>AppDelegate扮演著什么樣的角色?</span> </li>
<li> <span>請解釋一下NSUserDefaults。就你而言,你會如何在磁盤中對數組對象進行序列化?</span> </li>
<li> <span>你會如何儲存用戶的認證信息?</span> </li>
<li> <span>請問何為Keychain服務?</span> </li>
<li> <span>為什么移動設備上的緩存和壓縮是不可或缺的?</span> </li>
<li> <span>請解釋一下~/Documents,~/Library和~/tmp。 iOS中的~屬于什么目錄?</span> </li>
<li> <span>AirPlay是如何運行的?換做是你,你會如何通過編程提高應用的實用性以及演示效果?</span> </li>
<li> <span>傳感器,IO以及WiFi、撥號等連接方式如何在iOS平臺上運作?它們有何利用價值?請扼要地談談你的觀點。</span> </li>
<li> <span>iPad 2,iPad mini 1-3,iPad Retina,iPad Air 2,iPhone 5、5S、6以及6+在硬件性能方面有何差異?這對注重性能的應用有何限制?</span> </li>
</ul>
<h3> <span>關于編程</span> </h3>
<ul>
<li> <span>Cocoa Touch包含什么?不包含什么?</span> </li>
<li> <span>為什么Cocoa Touch的類名稱是以兩個大寫字母開頭的?</span> </li>
<li> <span>Swift和Objective-C分別是什么?兩者相比有何不同之處,又有何聯系?</span> </li>
<li> <span>為什么Optional在Swift語言中非常重要?</span> </li>
<li> <span>請解釋一下NSError。在Swift中,什么情況下能使用NSError ,什么情況下不能?</span> </li>
<li> <span>請說明如何使用Instancetype及其重要性。</span> </li>
<li> <span>在Swift中,什么時候該用let,什么時候該用var?</span> </li>
<li> <span>為什么map函數必不可少?該在什么情況下使用它?</span> </li>
<li> <span>你會選擇什么工具來追蹤Bug?</span> </li>
<li> <span>如果在Cocoa中發現一個Bug,你會如何處理?</span> </li>
<li> <span>如果應用的新版本出現了Regression的情況,該如何補救?如何防止用戶在使用過程中遇到新的Bug?</span> </li>
<li> <span>Objective-C的類是怎么執行的?Objective-C Runtime是如何實現的?</span> </li>
<li> <span>iOS是如何提高安全性,保護用戶隱私信息的?</span> </li>
<li> <span>應用可以下載并即刻顯示數據。如何根據MVC來判斷下載的最佳位置?</span> </li>
<li> <span>MVC對代碼庫(Codebase)的設計有何影響?</span> </li>
<li> <span>Controller Life-Cycle以及View Life-cycle分別有哪些調試方法?</span> </li>
<li> <span>iOS使用的是哪些設計模式(Design Patterns)?你的代碼庫使用的是哪些設計模式?</span> </li>
<li> <span>iOS提供哪些線程?如何充分利用這些線程?</span> </li>
<li> <span>請簡要描述一下UIScrollView的執行過程。它是如何響應手勢識別(Gesture Recognizer)、多點觸控(Multi-Touch)和Run Loop的?</span> </li>
<li> <span>你認為iOS需要添加或改進哪些API?</span> </li>
</ul>
<h3> <span>關于界面</span> </h3>
<ul>
<li> <span>iPhone5、6、6+以及iPad Air 2的屏幕分辨率分別是多少?</span> </li>
<li> <span>分辨率的計算單位是什么?</span> </li>
<li> <span>請解釋一下Interface Builder的作用以及NIB文件的概念。</span> </li>
<li> <span>iOS UI的圖像儲存類型是什么?</span> </li>
<li> <span>請描述一下Storyboard和標準NIB文件的差別。</span> </li>
<li> <span>設備狀態欄(Device Status Bar)是什么?高度如何?是否透明?在手機通話或者導航狀態下,它是如何顯示的?</span> </li>
<li> <span>導航欄(Navigation Bar)是什么?能否拿出你的iPhone,指出你下載的哪些應用運用了導航欄?</span> </li>
<li> <span>選項卡(Tab Bar)和工具欄(Toolbar)分別是什么?兩者之間有何共同點和不同點?</span> </li>
<li> <span>表視圖(Table View)是什么?集合視圖(Collection View)又是什么?</span> </li>
<li> <span>什么時候用“彈出(Popover)”屬性最為合適?</span> </li>
<li> <span>Split-view Controller是什么?</span> </li>
<li> <span>選取器視圖(Picker View)適合存放哪類內容?</span> </li>
<li> <span>應該在什么情況下使用標簽、文本域和文本視圖?</span> </li>
<li> <span>分段控件(Segmented Control)的作用是什么?</span> </li>
<li> <span>模態視圖(Modal View)是什么?</span> </li>
<li> <span>iOS通知屬于什么類型?</span> </li>
</ul>
<h3> <span>關于設計</span> </h3>
<ul>
<li> <span>iOS應用圖標是指什么?請盡可能詳細地描述一下。</span> </li>
<li> <span>最小尺寸和最大尺寸的應用圖標分別是什么樣子的?</span> </li>
<li> <span>應用圖標能否包含透明的部分?</span> </li>
<li> <span>Newsstand的圖標與常規應用有何不同?</span> </li>
<li> <span>請解釋一下啟動畫面(Launch Images)。</span> </li>
<li> <span>自動布局(Auto Layout)的作用是什么?請概括一下它是如何運行的。</span> </li>
<li> <span>設計軟件時為什么要加上動畫?</span> </li>
<li> <span>請描述一下軟件設計中的交互和Feedback有什么作用。</span> </li>
<li> <span>設計iPhone和iPad應用時,應分別考慮哪些因素?</span> </li>
<li> <span>請描述一下原型設計對于軟件開發的意義。其作用是什么?</span> </li>
</ul>
<h3> <span>關于App Store</span> </h3>
<ul>
<li> <span>應用內購買(In-App Purchases)是怎么回事?IAP能夠為用戶帶來哪些新體驗?</span> </li>
<li> <span>你是否在App Store上發布過應用?能否概括一下過程?</span> </li>
<li> <span>iTunes Connect是什么?</span> </li>
<li> <span>Provisioning Profiles是指?</span> </li>
<li> <span>App ID是什么?</span> </li>
<li> <span>iOS的開發和發布簽名證書有何異同?</span> </li>
<li> <span>如何使用TestFlight?通過Ad-hoc發布應用的話,該如何使用UUID?</span> </li>
<li> <span>應何時驗證購買收據?</span> </li>
<li> <span>發布iAds(蘋果平臺廣告)有哪些要求?</span> </li>
</ul>
<h3> <span>趣味問答</span> </h3>
<ul>
<li> <span>最近有沒有開發什么好玩的東西?你最引以為豪的作品是什么?</span> </li>
<li> <span>談一談你常用的開發工具都有哪些優勢?</span> </li>
<li> <span>你最敬佩的獨立Mac或者iOS應用開發者是誰?</span> </li>
<li> <span>最喜歡什么項目?哪種類型的?</span> </li>
<li> <span>你覺得Xcode有哪些需要改進的地方?</span> </li>
<li> <span>iOS上你最喜歡哪些API?</span> </li>
<li> <span>是否有最中意的錯誤報告?</span> </li>
<li> <span>你最愛以哪種方式來檢驗一項新技術是否好用?</span> </li>
<li> <span>為什么詞典被稱作Dictionaries,而不是HashTable或HashMap?</span> </li>
</ul>
<h3> <span>其他參考</span> </h3>
<ul>
<li> <span> <a href="/misc/goto?guid=4958862157469172636" target="_blank">iOS Dev Weekly</a> (iOS開發周刊) </span> </li>
<li> <span> <a href="/misc/goto?guid=4958862157577744706" target="_blank">Accidental Tech Podcast</a> </span> </li>
<li> <span> <a href="/misc/goto?guid=4958862157686928636" target="_blank">Debug Podcast</a> </span> </li>
<li> <span> <a href="/misc/goto?guid=4958862157797656291" target="_blank">The Talk Show</a> </span> </li>
<li> <span> <a href="/misc/goto?guid=4958862157904982802" target="_blank">NSHipster</a> </span> </li>
<li> <span> <a href="/misc/goto?guid=4958862158011375614" target="_blank">KZBootstrap</a> (一個方便iOS工程初始化的項目) </span> </li>
<li> <span> <a href="/misc/goto?guid=4958862158115551247" target="_blank">WWDC Videos</a> </span> </li>
<li> <span> <a href="/misc/goto?guid=4958862158211739849" target="_blank">ASCII WWDC</a> (文字版本,可搜索) </span> </li>
<li> <span> <a href="/misc/goto?guid=4958858853132686124" target="_blank">Pttrns</a> (iOS手機App界面分享平臺) </span> </li>
<li> <span> <a href="/misc/goto?guid=4958524758145960694" target="_blank">Ray Wenderlich Tutorials</a> (Ray Wenderlich教程) </span> </li>
<li> <span> <a href="/misc/goto?guid=4958862158368015414" target="_blank">iOS Version Stats</a> (信息分享平臺) </span> </li>
<li> <span> <a href="/misc/goto?guid=4958829376914292614" target="_blank">iOS Human Interface Guidelines</a> (iOS人機界面指南) </span> </li>
<li> <span> <a href="/misc/goto?guid=4958862158492751186" target="_blank">Black Pixel blog post on hiring iOS and Mac engineers</a> (Black Pixel博客) </span> </li>
<li> <span> <a href="/misc/goto?guid=4958862158580884202" target="_blank">Macoscope guide to a technical interview</a> ( Macoscope技術面試指南) </span> </li>
</ul>
<p> (編譯/張新慧 責編/唐小引) </p>
<p> 文章來源: <a href="/misc/goto?guid=4958862158663697130" target="_blank">GitHub</a> </p>
</div>
</div>
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!