iOS 面試題匯總 答案后續(xù)補(bǔ)上

無論是對(duì)于公司還是開發(fā)者或設(shè)計(jì)師個(gè)人而言,面試都是一項(xiàng)耗時(shí)耗錢的項(xiàng)目,本文作者Cameron Banga從編程、設(shè)計(jì)、App Store等各個(gè)方面對(duì)iOS開發(fā)者及設(shè)計(jì)師在面試時(shí)可能會(huì)遇到的問題進(jìn)行了篩選與匯總。一方面,能夠幫助HR在短時(shí)間內(nèi)獲取更多反饋信息,更好地甄選合適人選,而iOS開發(fā)者及設(shè)計(jì)師在尋找相關(guān)工作時(shí),也可作為參考,為面試做好萬全準(zhǔn)備。



常見問題

你昨天/這周學(xué)習(xí)了什么?
你為什么熱衷于軟件開發(fā)?
你對(duì)哪一種控制系統(tǒng)比較熟悉?
是否參與過GitHub項(xiàng)目?
是否參與過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è)試過程。iOS應(yīng)用如何實(shí)現(xiàn)對(duì)其他語言、日期格式以及貨幣單位的支持?
請(qǐng)描述一下Instruments及其作用。

關(guān)于iOS技術(shù)

請(qǐng)解釋一下Handoff是什么,并簡(jiǎn)述它是如何實(shí)現(xiàn)iOS、Mac/網(wǎng)頁應(yīng)用互通的。
答:Handoff是蘋果推出的一項(xiàng)功能,當(dāng)你的iPhone、mac、ipad登陸同一個(gè)iCloud賬戶時(shí),你在手機(jī)上打開網(wǎng)頁會(huì)實(shí)時(shí)在mac上看到,由于其是基于藍(lán)牙4.0來實(shí)現(xiàn)的,所以要手機(jī)和電腦相互靠近才可以。當(dāng)然要使用的話,iOS要8.0以上且mac要10.10以上。
iCloud包含了哪些技術(shù)與服務(wù)?
答:iCloud 其實(shí)就是云服務(wù),蘋果為用戶提供了一個(gè)私有云空間,方便用戶在不同的蘋果設(shè)備之間共享個(gè)人數(shù)據(jù)。
iOS擴(kuò)展是指?能否列舉一些熱門或常見的范例?
答:擴(kuò)展是iOS8中引入的一個(gè)非常重要的新特性,擴(kuò)展讓app之間的數(shù)據(jù)交互稱為可能,用戶可以在app中使用其他應(yīng)用提供的功能,而無需離開當(dāng)前的應(yīng)用。引入擴(kuò)展之后,app可以與擴(kuò)展進(jìn)行數(shù)據(jù)交換,基于安全和性能的考慮,每一個(gè)擴(kuò)展運(yùn)行在一個(gè)單獨(dú)的進(jìn)程中,擁有自己的bundle,bundle 的后綴名是.appex。擴(kuò)展bundle必須包含在一個(gè)普通應(yīng)用的bundle內(nèi)部。iOS8有6個(gè)支持?jǐn)U展的系統(tǒng)區(qū)域,分別是Today、Share、Action、Photo Editing、Storage Provider、Custom Keyboard。
HealthKit是什么?
答:HealthKit是一個(gè)框架,應(yīng)用可以使用它來分享健康和健身數(shù)據(jù)。HealthKit管理從不同來源獲得的數(shù)據(jù),并根據(jù)用戶的偏好設(shè)置,自動(dòng)將不同來源的所有數(shù)據(jù)合并起來。
HomeKit是什么?
答:是蘋果發(fā)布的智能家居平臺(tái)。
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)問何為Keychain服務(wù)?
為什么移動(dòng)設(shè)備上的緩存和壓縮是不可或缺的?
請(qǐng)解釋一下/Documents,/Library和~/tmp。 iOS中的~屬于什么目錄?
AirPlay是如何運(yùn)行的?換做是你,你會(huì)如何通過編程提高應(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分別是什么??jī)烧呦啾扔泻尾煌帲钟泻温?lián)系?
為什么Optional在Swift語言中非常重要?
請(qǐng)解釋一下NSError。在Swift中,什么情況下能使用NSError ,什么情況下不能?
請(qǐng)說明如何使用Instancetype及其重要性。
在Swift中,什么時(shí)候該用let,什么時(shí)候該用var?
為什么map函數(shù)必不可少?該在什么情況下使用它?
你會(huì)選擇什么工具來追蹤Bug?
如果在Cocoa中發(fā)現(xiàn)一個(gè)Bug,你會(huì)如何處理?
如果應(yīng)用的新版本出現(xiàn)了Regression的情況,該如何補(bǔ)救?如何防止用戶在使用過程中遇到新的Bug?
Objective-C的類是怎么執(zhí)行的?Objective-C Runtime是如何實(shí)現(xiàn)的?
iOS是如何提高安全性,保護(hù)用戶隱私信息的?
應(yīng)用可以下載并即刻顯示數(shù)據(jù)。如何根據(jù)MVC來判斷下載的最佳位置?
MVC對(duì)代碼庫(Codebase)的設(shè)計(jì)有何影響?
Controller Life-Cycle以及View Life-cycle分別有哪些調(diào)試方法?
iOS使用的是哪些設(shè)計(jì)模式(Design Patterns)?你的代碼庫使用的是哪些設(shè)計(jì)模式?
iOS提供哪些線程?如何充分利用這些線程?
請(qǐng)簡(jiǎn)要描述一下UIScrollView的執(zhí)行過程。它是如何響應(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)分別是什么??jī)烧咧g有何共同點(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)購買(In-App Purchases)是怎么回事?IAP能夠?yàn)橛脩魩砟男┬麦w驗(yàn)?
你是否在App Store上發(fā)布過應(yīng)用?能否概括一下過程?
iTunes Connect是什么?
Provisioning Profiles是指?
App ID是什么?
iOS的開發(fā)和發(fā)布簽名證書有何異同?
如何使用TestFlight?通過Ad-hoc發(fā)布應(yīng)用的話,該如何使用UUID?
應(yīng)何時(shí)驗(yàn)證購買收據(jù)?
發(fā)布iAds(蘋果平臺(tái)廣告)有哪些要求?

趣味問答

最近有沒有開發(fā)什么好玩的東西?你最引以為豪的作品是什么?
談一談你常用的開發(fā)工具都有哪些優(yōu)勢(shì)?
你最敬佩的獨(dú)立Mac或者iOS應(yīng)用開發(fā)者是誰?
最喜歡什么項(xiàng)目?哪種類型的?
你覺得Xcode有哪些需要改進(jìn)的地方?
iOS上你最喜歡哪些API?
是否有最中意的錯(cuò)誤報(bào)告?
你最愛以哪種方式來檢驗(yàn)一項(xiàng)新技術(shù)是否好用?
為什么詞典被稱作Dictionaries,而不是HashTable或HashMap?

其他參考

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ù)面試指南)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,811評(píng)論 25 708
  • 非游戲類,初級(jí)面試常見問題1.你昨天/這周學(xué)習(xí)了什么?坦白點(diǎn)說,學(xué)習(xí)筆試面試后發(fā)現(xiàn)自己知識(shí)點(diǎn)不足的地方2.你為什么...
    cj2527閱讀 837評(píng)論 0 0
  • JY36501閱讀 141評(píng)論 0 0
  • 此刻腦子有些亂,有一肚子的話卻不知該如何表達(dá)。 之前日記中一直在寫夢(mèng)想與努力,可今天我卻不敢說夢(mèng)想與努力。一提到它...
    Catherine_龍貓閱讀 194評(píng)論 0 0
  • 異地戀,聽上去總是有點(diǎn)可憐無奈的。 生病了除了電話那頭的多喝水,多喝熱水,吃藥打針輸液還是得一個(gè)人來,搬宿舍,把自...
    七號(hào)的閱讀 315評(píng)論 0 1