- 相關(guān)推薦
100個(gè)iOS開發(fā)/設(shè)計(jì)面試題匯總
無(wú)論是對(duì)于公司還是開發(fā)者或設(shè)計(jì)師個(gè)人而言,面試都是一項(xiàng)耗時(shí)耗錢的項(xiàng)目,本文作者Cameron Banga從編程、設(shè)計(jì)、App Store等各個(gè)方面對(duì)iOS開發(fā)者及設(shè)計(jì)師在面試時(shí)可能會(huì)遇到的問(wèn)題進(jìn)行了篩選與匯總。一方面,能夠幫助HR在短時(shí)間內(nèi)獲取更多反饋信息,更好地甄選合適人選,而iOS開發(fā)者及設(shè)計(jì)師在尋找相關(guān)工作時(shí),也可作為參考,為面試做好萬(wàn)全準(zhǔn)備。
常見(jiàn)問(wèn)題
你昨天/這周學(xué)習(xí)了什么?
你為什么熱衷于軟件開發(fā)?
你對(duì)哪一種控制系統(tǒng)比較熟悉?
是否參與過(guò)GitHub項(xiàng)目?
是否參與過(guò)GitHub或其他同類型網(wǎng)站的iOS開源項(xiàng)目?
請(qǐng)描述一下你的iOS應(yīng)用開發(fā)流程。
是否熟知CocoaPods?它是什么?如何運(yùn)行的?
請(qǐng)概括一下你對(duì)軟件授權(quán)的理解,及其對(duì)軟件開發(fā)的影響。
請(qǐng)概括一下你在構(gòu)建iOS應(yīng)用時(shí)的測(cè)試過(guò)程。iOS應(yīng)用如何實(shí)現(xiàn)對(duì)其他語(yǔ)言、日期格式以及貨幣單位的支持?
請(qǐng)描述一下Instruments及其作用。
關(guān)于iOS技術(shù)
請(qǐng)解釋一下Handoff是什么,并簡(jiǎn)述它是如何實(shí)現(xiàn)iOS、Mac/網(wǎng)頁(yè)應(yīng)用互通的。
iCloud包含了哪些技術(shù)與服務(wù)?
iOS擴(kuò)展是指?能否列舉一些熱門或常見(jiàn)的范例?
HealthKit是什么?
HomeKit是什么?
Apple Pay是什么?能否描述一下如何在應(yīng)用中使用Apple Pay?
請(qǐng)解釋一下iOS應(yīng)用沙盒機(jī)制。
VoiceOver是什么?請(qǐng)舉例解釋一下iOS中的輔助功能(Accessibility)。開發(fā)者如何使用這些功能?
iOS應(yīng)用是如何實(shí)現(xiàn)后臺(tái)多任務(wù)處理(Multitasking)的?
Game Center針對(duì)iOS游戲有哪些功能?
iBeacons是什么?
Cocoa/Cocoa Touch是什么?
請(qǐng)概括一下Core Audio,Core Data以及Core Location各是什么。它們對(duì)iOS應(yīng)用有何意義?
請(qǐng)描述SpriteKit和SceneKit的作用。
Metal是什么?
響應(yīng)鏈(Responder Chain)是什么?它是如何發(fā)揮作用的?
按鈕和其他控制方式對(duì)哪些操作做出回應(yīng)?
AppDelegate扮演著什么樣的角色?
請(qǐng)解釋一下NSUserDefaults。就你而言,你會(huì)如何在磁盤中對(duì)數(shù)組對(duì)象進(jìn)行序列化?
你會(huì)如何儲(chǔ)存用戶的認(rèn)證信息?
請(qǐng)問(wèn)何為Keychain服務(wù)?
為什么移動(dòng)設(shè)備上的緩存和壓縮是不可或缺的?
請(qǐng)解釋一下~/Documents,~/Library和~/tmp。 iOS中的~屬于什么目錄?
AirPlay是如何運(yùn)行的?換做是你,你會(huì)如何通過(guò)編程提高應(yīng)用的實(shí)用性以及演示效果?
傳感器,IO以及WiFi、撥號(hào)等連接方式如何在iOS平臺(tái)上運(yùn)作?它們有何利用價(jià)值?請(qǐng)扼要地談?wù)勀愕挠^點(diǎn)。
iPad 2,iPad mini 1-3,iPad Retina,iPad Air 2,iPhone 5、5S、6以及6+在硬件性能方面有何差異?這對(duì)注重性能的應(yīng)用有何限制?
關(guān)于編程
Cocoa Touch包含什么?不包含什么?
為什么Cocoa Touch的類名稱是以兩個(gè)大寫字母開頭的?
Swift和Objective-C分別是什么?兩者相比有何不同之處,又有何聯(lián)系?
為什么Optional在Swift語(yǔ)言中非常重要?
請(qǐng)解釋一下NSError。在Swift中,什么情況下能使用NSError ,什么情況下不能?
請(qǐng)說(shuō)明如何使用Instancetype及其重要性。
在Swift中,什么時(shí)候該用let,什么時(shí)候該用var?
為什么map函數(shù)必不可少?該在什么情況下使用它?
你會(huì)選擇什么工具來(lái)追蹤Bug?
如果在Cocoa中發(fā)現(xiàn)一個(gè)Bug,你會(huì)如何處理?
如果應(yīng)用的新版本出現(xiàn)了Regression的情況,該如何補(bǔ)救?如何防止用戶在使用過(guò)程中遇到新的Bug?
Objective-C的類是怎么執(zhí)行的?Objective-C Runtime是如何實(shí)現(xiàn)的?
iOS是如何提高安全性,保護(hù)用戶隱私信息的?
應(yīng)用可以下載并即刻顯示數(shù)據(jù)。如何根據(jù)MVC來(lái)判斷下載的最佳位置?
MVC對(duì)代碼庫(kù)(Codebase)的設(shè)計(jì)有何影響?
Controller Life-Cycle以及View Life-cycle分別有哪些調(diào)試方法?
iOS使用的是哪些設(shè)計(jì)模式(Design Patterns)?你的代碼庫(kù)使用的是哪些設(shè)計(jì)模式?
iOS提供哪些線程?如何充分利用這些線程?
請(qǐng)簡(jiǎn)要描述一下UIScrollView的執(zhí)行過(guò)程。它是如何響應(yīng)手勢(shì)識(shí)別(Gesture Recognizer)、多點(diǎn)觸控(Multi-Touch)和Run Loop的?
你認(rèn)為iOS需要添加或改進(jìn)哪些API?
關(guān)于界面
iPhone5、6、6+以及iPad Air 2的屏幕分辨率分別是多少?
分辨率的計(jì)算單位是什么?
請(qǐng)解釋一下Interface Builder的作用以及NIB文件的概念。
iOS UI的圖像儲(chǔ)存類型是什么?
請(qǐng)描述一下Storyboard和標(biāo)準(zhǔn)NIB文件的差別。
設(shè)備狀態(tài)欄(Device Status Bar)是什么?高度如何?是否透明?在手機(jī)通話或者導(dǎo)航狀態(tài)下,它是如何顯示的?
導(dǎo)航欄(Navigation Bar)是什么?能否拿出你的iPhone,指出你下載的哪些應(yīng)用運(yùn)用了導(dǎo)航欄?
選項(xiàng)卡(Tab Bar)和工具欄(Toolbar)分別是什么?兩者之間有何共同點(diǎn)和不同點(diǎn)?
表視圖(Table View)是什么?集合視圖(Collection View)又是什么?
什么時(shí)候用“彈出(Popover)”屬性最為合適?
Split-view Controller是什么?
選取器視圖(Picker View)適合存放哪類內(nèi)容?
應(yīng)該在什么情況下使用標(biāo)簽、文本域和文本視圖?
分段控件(Segmented Control)的作用是什么?
模態(tài)視圖(Modal View)是什么?
iOS通知屬于什么類型?
關(guān)于設(shè)計(jì)
iOS應(yīng)用圖標(biāo)是指什么?請(qǐng)盡可能詳細(xì)地描述一下。
最小尺寸和最大尺寸的應(yīng)用圖標(biāo)分別是什么樣子的?
應(yīng)用圖標(biāo)能否包含透明的部分?
Newsstand的圖標(biāo)與常規(guī)應(yīng)用有何不同?
請(qǐng)解釋一下啟動(dòng)畫面(Launch Images)。
自動(dòng)布局(Auto Layout)的作用是什么?請(qǐng)概括一下它是如何運(yùn)行的。
設(shè)計(jì)軟件時(shí)為什么要加上動(dòng)畫?
請(qǐng)描述一下軟件設(shè)計(jì)中的交互和Feedback有什么作用。
設(shè)計(jì)iPhone和iPad應(yīng)用時(shí),應(yīng)分別考慮哪些因素?
請(qǐng)描述一下原型設(shè)計(jì)對(duì)于軟件開發(fā)的意義。其作用是什么?
關(guān)于App Store
應(yīng)用內(nèi)購(gòu)買(In-App Purchases)是怎么回事?IAP能夠?yàn)橛脩魩?lái)哪些新體驗(yàn)?
你是否在App Store上發(fā)布過(guò)應(yīng)用?能否概括一下過(guò)程?
iTunes Connect是什么?
Provisioning Profiles是指?
App ID是什么?
iOS的開發(fā)和發(fā)布簽名證書有何異同?
如何使用TestFlight?通過(guò)Ad-hoc發(fā)布應(yīng)用的話,該如何使用UUID?
應(yīng)何時(shí)驗(yàn)證購(gòu)買收據(jù)?
發(fā)布iAds(蘋果平臺(tái)廣告)有哪些要求?
趣味問(wèn)答
最近有沒(méi)有開發(fā)什么好玩的東西?你最引以為豪的作品是什么?
談一談你常用的開發(fā)工具都有哪些優(yōu)勢(shì)?
你最敬佩的獨(dú)立Mac或者iOS應(yīng)用開發(fā)者是誰(shuí)?
最喜歡什么項(xiàng)目?哪種類型的?
你覺(jué)得Xcode有哪些需要改進(jìn)的地方?
iOS上你最喜歡哪些API?
是否有最中意的錯(cuò)誤報(bào)告?
你最愛(ài)以哪種方式來(lái)檢驗(yàn)一項(xiàng)新技術(shù)是否好用?
為什么詞典被稱作Dictionaries,而不是HashTable或HashMap?
其他參考(點(diǎn)擊閱讀原文有鏈接)
iOS Dev Weekly(iOS開發(fā)周刊)
Accidental Tech Podcast
Debug Podcast
The Talk Show
NSHipster
KZBootstrap(一個(gè)方便iOS工程初始化的項(xiàng)目)
WWDC Videos
ASCII WWDC(文字版本,可搜索)
Pttrns(iOS手機(jī)App界面分享平臺(tái))
Ray Wenderlich Tutorials(Ray Wenderlich教程)
iOS Version Stats(信息分享平臺(tái))
iOS Human Interface Guidelines(iOS人機(jī)界面指南)
Black Pixel blog post on hiring iOS and Mac engineers(Black Pixel博客)
Macoscope guide to a technical interview( Macoscope技術(shù)面試指南)
http://m.dgxbdz.com/【100個(gè)iOS開發(fā)/設(shè)計(jì)面試題】相關(guān)文章:
iOS面試題集合02-13
iOS面試題匯總02-13
ios基礎(chǔ)面試題08-07
iOS開發(fā)者面試試題07-27
2016年Java開發(fā)崗位面試題02-20
java開發(fā)面試題型與技巧07-18
HR如何設(shè)計(jì)面試題目08-25
解析百度HTML5開發(fā)面試題08-05