面試---一般扯淡問(wèn)題回答

面試題中有一些一般性的問(wèn)題准验,通常是會(huì)問(wèn)到的。面試iOS應(yīng)聘者時(shí)廷没,切入點(diǎn)很重要糊饱,不同的切入點(diǎn)會(huì)導(dǎo)致不同的結(jié)果,沒(méi)有找到合適的切入點(diǎn)也無(wú)法對(duì)應(yīng)聘者有一個(gè)全面的了解颠黎。所以下面的面試問(wèn)題更多的是提供方向另锋,沒(méi)有固定的答案,而且可以根據(jù)應(yīng)聘者的回應(yīng)引出更多有意思深層次的討論狭归。

注意:以下問(wèn)題的參考答案均為筆者所答夭坪,不代表正確,問(wèn)題答案因人而異过椎,請(qǐng)根據(jù)自己的實(shí)際情況回答室梅,若認(rèn)為不合理,請(qǐng)?jiān)谠u(píng)論中指出疚宇。下面所有的參考答案亡鼠,都是筆者站在面試官的角度來(lái)分析的,不同的面試官也會(huì)不一樣敷待。筆者面試過(guò)一些人拆宛,一問(wèn)就可以知道對(duì)方的底子如何了,雖然如此讼撒,不代表參考答案是每個(gè)面試官想要的。

自我介紹

自我介紹時(shí)股耽,一定要簡(jiǎn)潔明了根盒,不要長(zhǎng)篇大論。以我個(gè)人而言物蝙,最不喜歡自我介紹說(shuō)了一大堆炎滞,最后連她/他叫什么名字都沒(méi)記住。

參考答案:

自我介紹時(shí)诬乞,突出重點(diǎn)册赛,說(shuō)話慢一些,在關(guān)鍵點(diǎn)聲音大一點(diǎn)震嫉。本人回答時(shí)森瘪,就簡(jiǎn)單地說(shuō): 我叫某某某,做iosX年了票堵,曾在XX公司擔(dān)任過(guò)XX職務(wù)扼睬,在YY公司擔(dān)任過(guò)XX職務(wù),主要負(fù)責(zé)ZZ工作悴势。業(yè)余喜歡做NN(要說(shuō)積極點(diǎn)的)窗宇,擅長(zhǎng)LL(把自己的特長(zhǎng)說(shuō)明白)等措伐。

最近這兩天你有學(xué)到什么知識(shí)/技能么?

對(duì)于這個(gè)問(wèn)題军俊,面試官肯定知道作為求職者侥加,這兩天肯定是在忙于找工作、面試粪躬。那么担败,面試官問(wèn)出這樣的問(wèn)題的目的是什么?如果我是面試官短蜕,我最想了解的是這兩天你為此次面試準(zhǔn)備了什么而不僅僅是告訴面試官這兩天學(xué)習(xí)了某一方面的知識(shí)氢架。

參考答案:

這兩天為了準(zhǔn)備面試,整理了以前所做過(guò)的一些項(xiàng)目的筆記朋魔,回頭看了看以前的工作日志岖研。一來(lái)是整理一些在工作中經(jīng)常遇到的坑,比如cell重用問(wèn)題警检、ios6適配問(wèn)題等孙援;二來(lái)是回頭告別過(guò)去的自己,在思想上扇雕、技術(shù)上迎來(lái)全新的自我拓售;三來(lái)定位自己下一個(gè)目標(biāo):往架構(gòu)師方向深入研究。

最近有做過(guò)比較酷或者比較有挑戰(zhàn)的項(xiàng)目么镶奉?

這個(gè)問(wèn)題的關(guān)鍵是酷和挑戰(zhàn)础淤。其實(shí)這里所說(shuō)的酷對(duì)應(yīng)于開(kāi)發(fā)中的動(dòng)畫,而挑戰(zhàn)則對(duì)應(yīng)于開(kāi)發(fā)中的沖刺哨苛。對(duì)于筆者而言鸽凶,其實(shí)并沒(méi)有做過(guò)特別酷的項(xiàng)目,但是做過(guò)有挑戰(zhàn)性的項(xiàng)目建峭。但是沒(méi)有做過(guò)并不是就不用回答玻侥,面試官想看到的是你的學(xué)習(xí)能力、應(yīng)用能力以及解決問(wèn)題的能力亿蒸,而不是一句沒(méi)做過(guò)或者沒(méi)什么挑戰(zhàn)性這樣的話語(yǔ)凑兰。

參考答案:

我之前所負(fù)責(zé)的項(xiàng)目大多是電商項(xiàng)目,因此并不會(huì)特別酷边锁,但是業(yè)務(wù)比較多姑食,很有技術(shù)挑戰(zhàn)性。不過(guò)茅坛,平時(shí)我也深入研究過(guò)ios核心動(dòng)畫相關(guān)知識(shí)矢门,對(duì)于常用的動(dòng)畫是很熟悉的。在我看來(lái),用戶體驗(yàn)并不是所謂的酷祟剔,而是簡(jiǎn)單隔躲、方便且明了。我很在意用戶體驗(yàn)問(wèn)題物延,在開(kāi)發(fā)中會(huì)不斷地站在用戶的角度地問(wèn)自己用戶討厭什么宣旱、喜歡什么和怎樣才能讓用戶感覺(jué)容易上手且使用簡(jiǎn)單等問(wèn)題。比如叛薯,我會(huì)很在意網(wǎng)絡(luò)狀態(tài)的變化給用戶的提示浑吟、請(qǐng)求網(wǎng)絡(luò)時(shí)右上角的轉(zhuǎn)圈圈是否開(kāi)啟、滾動(dòng)cell時(shí)是否有卡頓的問(wèn)題等耗溜。

我待過(guò)幾家公司组力,從一個(gè)人開(kāi)發(fā)到帶領(lǐng)團(tuán)隊(duì),從小公司到大公司抖拴,因此對(duì)于不同的公司對(duì)項(xiàng)目的要求完全不一樣燎字。對(duì)于大公司,一般項(xiàng)目管理機(jī)制相對(duì)比較完善阿宅,而且會(huì)有比較多經(jīng)驗(yàn)豐富的技術(shù)VP候衍,因此對(duì)于工作的要求比較高,對(duì)于用戶的體驗(yàn)及反饋會(huì)非常地關(guān)注洒放;而對(duì)于一些小公司蛉鹿,可能就一個(gè)人在開(kāi)發(fā),而這個(gè)人往往是菜鳥(niǎo)的多往湿,因此都是東拼西湊而形成的項(xiàng)目妖异,技術(shù)不成熟、水平不夠领追,而且還被壓著不斷加班随闺,因此幾乎不會(huì)過(guò)多關(guān)注用戶體驗(yàn)問(wèn)題,當(dāng)然這樣項(xiàng)目也不會(huì)有什么好的構(gòu)架(初創(chuàng)技術(shù)合伙人除外)蔓腐。

現(xiàn)在我所在的公司不算大,也就1000+號(hào)人龄句,而做ios也才40號(hào)人左右回论。本公司是按業(yè)務(wù)方向劃分成多個(gè)團(tuán)隊(duì),不同團(tuán)隊(duì)開(kāi)發(fā)不同的業(yè)務(wù)需求分歇,因此這樣就面臨技術(shù)架構(gòu)問(wèn)題傀蓉、安全問(wèn)題、團(tuán)隊(duì)開(kāi)發(fā)如何做到互不干擾等問(wèn)題了职抡。而我在團(tuán)隊(duì)中的主要職責(zé)是處理團(tuán)隊(duì)之間沖突的問(wèn)題葬燎、如何代碼模塊化以減少團(tuán)隊(duì)之外的依賴問(wèn)題、移動(dòng)端安全通信問(wèn)題、項(xiàng)目存儲(chǔ)安全問(wèn)題谱净、公共框架等問(wèn)題窑邦,這一系列都是非常有技術(shù)挑戰(zhàn)的,需要花費(fèi)很多非工作時(shí)間去調(diào)研壕探、寫demo冈钦、寫文檔等。

關(guān)于動(dòng)畫的學(xué)習(xí)李请,筆者的博客有相關(guān)專題:iOS Core Animation

最近看過(guò)的書/文章有哪些瞧筛?

詢問(wèn)最近看過(guò)的書或者文章,其實(shí)通過(guò)所回答的書的性質(zhì)差不多就可以猜出當(dāng)前狀態(tài)下應(yīng)聘者的技術(shù)水平大致處于什么樣的水準(zhǔn)了导盅。下面的參考答案是筆者的常態(tài)较幌。

參考答案:

最近在看《iOS應(yīng)用逆向工程》、《The Swift Programming Language》白翻。不過(guò)本人更喜歡的是閱讀博客文章和官方文檔乍炉,雖然官方文檔是英文的,閱讀起來(lái)相對(duì)要費(fèi)勁一些嘁字,但是一方面可以提高英文閱讀能力恩急,另一方面英文原版表達(dá)的語(yǔ)義才是最準(zhǔn)確的,其他翻譯過(guò)來(lái)的文章會(huì)有一些變味之處纪蜒。

為什么要學(xué)習(xí)編程衷恭,編程對(duì)你而言的樂(lè)趣在哪兒?

這樣的話題在很多社區(qū)都出現(xiàn)過(guò)纯续,其實(shí)問(wèn)這樣的問(wèn)題只是想知道應(yīng)聘者的態(tài)度而已随珠。通過(guò)應(yīng)聘者的回答,一方面可初步了解應(yīng)聘者對(duì)編程的認(rèn)知程度猬错,另一方面可從應(yīng)聘者口出得出編程對(duì)于應(yīng)聘者而言是什么樣的態(tài)度窗看。下面是結(jié)合筆者的事跡寫下的參考答案,僅供參考倦炒。

參考答案:

說(shuō)到這個(gè)問(wèn)題显沈,我曾經(jīng)也問(wèn)過(guò)自己為什么要學(xué)習(xí)編程》昊剑回想當(dāng)年高考結(jié)果出來(lái)的時(shí)候拉讯,需要選擇學(xué)校和專業(yè)的時(shí)候是很迷茫的,不知上大學(xué)應(yīng)該學(xué)點(diǎn)什么鳖藕。后來(lái)魔慷,我選擇了計(jì)算機(jī)科學(xué)與技術(shù)專業(yè),并為了這個(gè)專業(yè)而選擇學(xué)校著恩。由于高考考得不好院尔,雖然超過(guò)一本線蜻展,但是高不成低不就,很多高校的計(jì)算機(jī)專業(yè)要求總分達(dá)到560(當(dāng)時(shí)一本線是502分)左右才能穩(wěn)拿到這個(gè)專業(yè)邀摆,而我才考了526分纵顾,想想計(jì)算機(jī)專業(yè)很強(qiáng)的高校是很難進(jìn)的。于是選擇了從廣西到沈陽(yáng)這么遙遠(yuǎn)的地方上學(xué)隧熙,竟然是為了計(jì)算機(jī)專業(yè)片挂,現(xiàn)在回想起來(lái)還自己偷笑。

在大學(xué)的時(shí)候贞盯,大一天天在圖書館提前學(xué)習(xí)編程音念,因?yàn)閯?dòng)手能力突出,到大二的時(shí)候有好多教計(jì)算機(jī)的老師提前知道了這樣的我躏敢,感謝他們的認(rèn)可闷愤,在大學(xué)這幾年,是他們引導(dǎo)我如何編程實(shí)戰(zhàn)件余。大學(xué)的時(shí)候做過(guò)很多PC端的軟件(.net開(kāi)發(fā)的)讥脐、給老師做過(guò)教程網(wǎng)站(ASP.net開(kāi)發(fā)的)、參加學(xué)習(xí)的ACM訓(xùn)練等等啼器,一切的一切旬渠,都要感謝那些教導(dǎo)我的恩師們。

后來(lái)通過(guò)學(xué)長(zhǎng)了解到未來(lái)就業(yè)的一些動(dòng)向端壳,了解到畢業(yè)后如何找工作告丢,學(xué)習(xí)了iOS開(kāi)發(fā),于是越來(lái)越愛(ài)她了损谦。如果非要說(shuō)編程的樂(lè)趣在哪里岖免,我想說(shuō)在討論技術(shù)的時(shí)候就像和同學(xué)、朋友一起玩LOL的時(shí)候照捡;在解決掉一個(gè)別人解決不了的bug的時(shí)候颅湘,那是一種想要向全世界大聲說(shuō):YES,I Can;當(dāng)我們與技術(shù)總監(jiān)并肩作戰(zhàn)栗精,一起為了項(xiàng)目上線熬夜闯参,總監(jiān)為我們買夜宵一起吃的時(shí)候,那就是兄弟情誼悲立,那會(huì)有種相見(jiàn)恨晚的感覺(jué)鹿寨。

如果一個(gè)函數(shù)10次中有7次正確,3次錯(cuò)誤级历,問(wèn)題可能出現(xiàn)在哪里?

這樣的問(wèn)題通過(guò)應(yīng)聘者的分析叭披,可以知道應(yīng)聘者的功底如何寥殖。很多人的回答會(huì)是很簡(jiǎn)單的玩讳,沒(méi)有從多方面去分析。這樣的問(wèn)題也是很有意義的嚼贡,在項(xiàng)目開(kāi)發(fā)中所產(chǎn)生的bug熏纯,有的時(shí)候會(huì)出現(xiàn)這樣的情況,而代碼量比較大且業(yè)務(wù)比較復(fù)雜時(shí)粤策,通過(guò)其他工具并不能分析出來(lái)是什么bug樟澜,但是我們卻可以根據(jù)出現(xiàn)的頻率推測(cè)。筆者把這個(gè)問(wèn)題當(dāng)作測(cè)試部反饋過(guò)來(lái)的bug描述問(wèn)題來(lái)分析一下叮盘。

參考答案:

從問(wèn)題描述可知秩贰,bug不會(huì)必現(xiàn)的,因此無(wú)法直接定位出錯(cuò)之處柔吼。從以下角度出現(xiàn)來(lái)分析可能出錯(cuò)之處:

因出錯(cuò)并不是崩潰毒费,因此沒(méi)有錯(cuò)誤日志可看。第一步就是分析函數(shù)中的所有分支愈魏,是否在語(yǔ)法上存在可能缺少條件的問(wèn)題觅玻。所以,檢查所有的分支培漏,確保每個(gè)分支執(zhí)行的結(jié)果的正確的

檢測(cè)函數(shù)的參數(shù)溪厘,保證必傳參數(shù)不能為空,若為空應(yīng)該拋出異常牌柄。因此畸悬,用斷言檢測(cè)參數(shù)的正確性是很重要的。

檢測(cè)函數(shù)中每個(gè)分支所調(diào)用的函數(shù)返回結(jié)果是正確的友鼻,其實(shí)就是一個(gè)遞歸的過(guò)程(步驟1傻昙、2)

自身最大優(yōu)點(diǎn)是什么,怎么證明彩扔?

人最大的敵人不是別人妆档,而是自己。戰(zhàn)勝自己虫碉,才是最大的勝利贾惦。很多人不清楚自己的優(yōu)點(diǎn)是什么,甚至很多朋友喜歡說(shuō)我最大的優(yōu)點(diǎn)是沒(méi)有缺點(diǎn)敦捧。如果是對(duì)面試官說(shuō)這一句話须板,那么你可能被pass掉了。

參考答案:

我也不清楚我最大的優(yōu)點(diǎn)是什么兢卵,但是我知道我有很多優(yōu)點(diǎn)习瑰。

我學(xué)習(xí)能力特別強(qiáng),接受新事物的能力也特別強(qiáng)秽荤。比如甜奄,我在工作之余還會(huì)去學(xué)習(xí)swift柠横、PHP、js等课兄。

我喜歡寫博客牍氛、寫總結(jié)、分享技術(shù)烟阐、幫助他人等搬俊。我覺(jué)得寫博客的過(guò)程,既讓自己對(duì)相關(guān)知識(shí)有更深刻的認(rèn)識(shí)蜒茄,更是幫助到他人唉擂。每做一期需求,我都會(huì)寫一份總結(jié)扩淀,記錄那些坑楔敌。在公司每個(gè)季度都會(huì)做幾次技術(shù)分享,帶動(dòng)團(tuán)隊(duì)的技術(shù)氛圍驻谆。我也喜歡幫助他人卵凑,我創(chuàng)建了自己的技術(shù)群,短短1個(gè)月群就滿500人了胜臊,在群里通過(guò)回答大家問(wèn)題勺卢,也讓我了解到很多知識(shí)。筆者有好幾個(gè)博客象对,不過(guò)現(xiàn)在自己搭建了個(gè)博客黑忱,以后會(huì)專門維護(hù)標(biāo)哥的技術(shù)博客。

我支持開(kāi)源勒魔、喜歡開(kāi)源甫煞。我寫了幾個(gè)開(kāi)源庫(kù),大家若是覺(jué)得有價(jià)值冠绢,請(qǐng)隨手給個(gè)star:標(biāo)哥的GITHUB

我開(kāi)發(fā)過(guò)多款A(yù)pp抚吠,解決問(wèn)題的能力很強(qiáng)。在團(tuán)隊(duì)中充當(dāng)技術(shù)主心骨弟胀,任何隊(duì)員解決不好的問(wèn)題楷力,我都會(huì)幫助一起解決掉。

我對(duì)技術(shù)構(gòu)架孵户、團(tuán)隊(duì)如何解藕方面都有所研究萧朝。在團(tuán)隊(duì)開(kāi)發(fā)中,因?yàn)榻?jīng)常面臨團(tuán)隊(duì)開(kāi)發(fā)存在交差的問(wèn)題夏哭,導(dǎo)致需求變動(dòng)引起很多問(wèn)題检柬,因此研究過(guò)如何讓團(tuán)隊(duì)之間減少依賴的問(wèn)題。

我活躍于GITHUB竖配、CocoaChina何址、CSDN等酱固,對(duì)于iOS相關(guān)技術(shù)知識(shí)比較熟悉。

就說(shuō)這么多吧头朱!(因?yàn)槊嬖嚫呒?jí)人員通常會(huì)交談3個(gè)小時(shí)左右,所以盡可能地說(shuō)吧龄减,不要害怕時(shí)間過(guò)長(zhǎng))

有沒(méi)有在 GitHub 上發(fā)布過(guò)開(kāi)源代碼项钮,參與過(guò)開(kāi)源項(xiàng)目?

github上的開(kāi)源項(xiàng)目可以體現(xiàn)應(yīng)聘者的水平以及對(duì)編程的熱愛(ài)程度希停。一個(gè)不足夠熱愛(ài)編程的人烁巫,業(yè)余時(shí)間是不會(huì)花在編程上的,因此更不會(huì)有什么開(kāi)源項(xiàng)目了宠能。

參考答案:

這里我的開(kāi)源庫(kù)的地址標(biāo)哥的GitHub亚隙,里面除了一些開(kāi)源庫(kù)之外,還有很多的demo违崇,每個(gè)demo都有對(duì)應(yīng)的博客文章講解阿弃,那都是我感覺(jué)學(xué)習(xí)的成果。

我在GITHUB上發(fā)布過(guò)很多開(kāi)源代碼羞延,也提供了支持cocoapods的開(kāi)源項(xiàng)目渣淳,現(xiàn)在也有不少人在使用,當(dāng)然我也會(huì)一直維護(hù)著伴箩,不過(guò)我并沒(méi)有參與過(guò)其他人發(fā)起的開(kāi)源項(xiàng)目入愧。

你最近遇到過(guò)的一個(gè)技術(shù)挑戰(zhàn)是什么?怎么解決的嗤谚?

通過(guò)應(yīng)聘者回答所遇到過(guò)的技術(shù)挑戰(zhàn)棺蛛,其實(shí)從側(cè)面就可以看出這個(gè)人的水平如何了。如果回答的技術(shù)挑戰(zhàn)是個(gè)簡(jiǎn)單的問(wèn)題巩步,而在應(yīng)聘者這里卻是技術(shù)挑戰(zhàn)旁赊,那么就可以知道這水平是初級(jí)的。然后應(yīng)聘者針對(duì)這個(gè)技術(shù)挑戰(zhàn)所給出的解決方案也可以看出面對(duì)技術(shù)挑戰(zhàn)渗钉,可以看出應(yīng)聘者處理問(wèn)題的能力彤恶。

參考答案:

最近公司項(xiàng)目中的用戶賬號(hào)出現(xiàn)被盜現(xiàn)象,原因是通信安全問(wèn)題處理不好鳄橘。因?yàn)楣镜捻?xiàng)目已經(jīng)是好幾年的老項(xiàng)目了声离,包括服務(wù)端的接口好多是老接口,原來(lái)是沒(méi)有處理任何加密的瘫怜,因此很容易被盜取賬號(hào)∈趸玻現(xiàn)在我們的技術(shù)VP要求針對(duì)這個(gè)問(wèn)題,做一個(gè)版本鲸湃。因?yàn)橹鲃?dòng)接受挑戰(zhàn)赠涮,所以這個(gè)重任落在了我的身上子寓,由我來(lái)牽頭做好這個(gè)需求。

這真的是一個(gè)很有挑戰(zhàn)性的技術(shù)項(xiàng)目笋除。步驟如下:

需要調(diào)研市場(chǎng)上比較有名的App斜友,他們是如何做好安全通信問(wèn)題的;

寫好技術(shù)文檔垃它,將調(diào)研結(jié)果反饋出來(lái)并寫出自己的技術(shù)方案鲜屏;

開(kāi)初步技術(shù)方案評(píng)審會(huì),會(huì)有VP及各組Leader參與国拇,會(huì)上會(huì)提出各種問(wèn)題洛史,并給予一一解答,然后做會(huì)議記錄酱吝,會(huì)后繼續(xù)完善文檔也殖;

開(kāi)跨部分評(píng)審會(huì),只有所有都通過(guò)了务热,才能立項(xiàng)忆嗜。

技術(shù)立項(xiàng),然后寫好各方向所需要做的工作文檔崎岂。

為什么要這么麻煩霎褐?因?yàn)槲覀兗纫嫒菀郧暗乃邪姹荆忠WC技術(shù)安全该镣,那就不會(huì)自己就能說(shuō)了算的冻璃,而且也不僅僅是客戶端的問(wèn)題。

開(kāi)發(fā)常用的工具有哪些损合?

通過(guò)回答這個(gè)問(wèn)題省艳,一方面可以看出這個(gè)應(yīng)聘者在iOS開(kāi)發(fā)領(lǐng)域的深入程度。如果只知道Xcode和Cocoapods嫁审,說(shuō)明是初級(jí)或者根本不愿意在業(yè)余時(shí)間花費(fèi)精力去擴(kuò)展跋炕。

參考答案:

常用的iOS開(kāi)發(fā)工具有:

Xcode開(kāi)發(fā)工具及配套的Instruments工具

Xcode常用的插件

Cocoapods第三方庫(kù)管理依賴工具

SourceTree是git版本管理工具

CornerStone是SVN版本管理工具

友盟統(tǒng)計(jì)BUG日志分析工具

熟悉CocoaPods么?能大概講一下工作原理么律适?

這個(gè)問(wèn)題不會(huì)回答也沒(méi)有關(guān)系辐烂,因?yàn)楹芏嗬享?xiàng)目是不使用CocoaPods的,因此不一定會(huì)了解捂贿。 回答說(shuō)使用過(guò)Cocoapods寫過(guò)demo纠修,但是不太懂工作原理是沒(méi)有關(guān)系的。因?yàn)樵谖铱吹竭@個(gè)問(wèn)題之前厂僧,我也沒(méi)有深入了解過(guò)其工作原理扣草,只是熟悉如何使用而已。

參考答案:

閱讀關(guān)于Cocoapods第三方庫(kù)管理依賴工具如何使用

關(guān)于其原理,大家百度一下或者谷歌一下吧辰妙!因?yàn)楣P者對(duì)其工作原理也不會(huì)很清楚鹰祸,只知道它會(huì)為我們創(chuàng)建一個(gè)工作區(qū)間,然后將所有在cocoapods中的引入的第三方庫(kù)以libPods.a這樣的方式引入到我們的工程中密浑,這樣就可以直接訪問(wèn)第三方庫(kù)了蛙婴。但是,更具體的細(xì)節(jié)就不了解了尔破,大家想要深入了解的話敬锐, 還得找谷歌或者百度。

最常用的版本控制工具是什么呆瞻,能大概講講原理么?

關(guān)于這個(gè)版本控制工具的工作原理径玖,其實(shí)也就是對(duì)這此命令的操作而已痴脾。

參考答案:

最常用的版本控制工具有SourceTree(GIT)和CornerStone(SVN):

SourceTree是git版本管理工具

CornerStone是SVN版本管理工具

今年你最想掌握的一門技術(shù)是什么?為什么梳星?目前已經(jīng)做到了哪個(gè)程度赞赖?

既然是技術(shù),那么就要說(shuō)明是什么技術(shù)冤灾,至于為什么想要掌握前域,當(dāng)然是想要在技術(shù)上更上一層樓。

參考答案:

我現(xiàn)在一直在研究runtime相關(guān)知識(shí)韵吨。掌握runtime相關(guān)技術(shù)匿垄,可以做很多正常狀態(tài)下做不到的事、可以讓做一些自動(dòng)化處理工作归粉、解決代碼依賴問(wèn)題等椿疗。目前已經(jīng)對(duì)runtime中的成員變量、屬性糠悼、消息轉(zhuǎn)發(fā)届榄、Swizzling等可以熟練使用。關(guān)于runtime專題倔喂,大家可以閱讀我的博客專題:iOS Runtime相關(guān)知識(shí)點(diǎn)

你一般是怎么用Instruments的铝条?

這個(gè)就是工作經(jīng)驗(yàn)的問(wèn)題了。Instruments工具里面有很多個(gè)選項(xiàng)席噩,沒(méi)有必要每個(gè)都答班缰,其實(shí)筆者也只用過(guò)里面的幾個(gè)而已。

參考答案:

使用Allocations來(lái)檢測(cè)內(nèi)存和堆棧信息

使用Leaks檢測(cè)內(nèi)存的使用情況悼枢,包括內(nèi)存泄露問(wèn)題

使用Zombies來(lái)檢測(cè)過(guò)早釋放的僵尸對(duì)象鲁捏,通過(guò)它可以檢測(cè)出在哪里崩潰的社痛。

使用Time Profiler來(lái)檢測(cè)CPU內(nèi)存使用情況

你一般是如何調(diào)試Bug的?

這個(gè)問(wèn)題看起來(lái)很籠統(tǒng)醋安,但又一針見(jiàn)血珍昨。通過(guò)應(yīng)聘者的回答,可很直觀地看出這個(gè)應(yīng)聘者的處理bug的能力动羽,以及其解決問(wèn)題的思維包帚。

參考答案:

Bug分為測(cè)試中的Bug和線上的Bug:

線上Bug:項(xiàng)目使用了友盟統(tǒng)計(jì),因此會(huì)有崩潰日志运吓,通過(guò)解析dYSM可以直接定位到大部分bug崩潰之處渴邦。解決線上bug需要從主干拉一個(gè)新的分支,解決bug并測(cè)試通過(guò)后拘哨,再合并到主干谋梭,然后上線。若是多團(tuán)隊(duì)開(kāi)發(fā)倦青,可以將fix bug分支與其他團(tuán)隊(duì)最近要上線的分支集成瓮床,然后集成測(cè)試再上線。

測(cè)試Bug:根據(jù)測(cè)試所反饋的bug描述产镐,若語(yǔ)義不清晰隘庄,則直接找到提bug人,操作給開(kāi)發(fā)人員看癣亚,最好是可以bug復(fù)現(xiàn)丑掺。解決bug時(shí),若能根據(jù)描述直接定位bug出錯(cuò)之處述雾,則好處理街州;若無(wú)法直觀定位,則根據(jù)bug類型分幾種處理方式玻孟,比如崩潰的bug可以通過(guò)instruments來(lái)檢測(cè)菇肃、數(shù)據(jù)顯示錯(cuò)誤的bug,則需要閱讀代碼一步步查看邏輯哪里寫錯(cuò)取募。

對(duì)于開(kāi)發(fā)中出現(xiàn)的崩潰或者數(shù)據(jù)顯示不正常琐谤,那就需要根據(jù)經(jīng)驗(yàn)或者相關(guān)工具來(lái)檢測(cè)可能出錯(cuò)之處。當(dāng)然玩敏,團(tuán)隊(duì)內(nèi)溝通解決是最好的斗忌。

你在你的項(xiàng)目中用到了哪些設(shè)計(jì)模式?

項(xiàng)目中使用了很多的設(shè)計(jì)模式旺聚,我相信面試官最好聽(tīng)到的不僅僅是設(shè)計(jì)模式的名字织阳,更想聽(tīng)到的是這些設(shè)計(jì)模式在項(xiàng)目中如何應(yīng)用。因此砰粹,筆者認(rèn)為這個(gè)問(wèn)題隱式地說(shuō)明了應(yīng)該回答設(shè)計(jì)模式及其在項(xiàng)目中的應(yīng)用唧躲。

參考答案:

單例設(shè)計(jì)模式:在項(xiàng)目中,單例是必不可少的。比如UIApplication弄痹、NSUserDefaults就是蘋果提供的單例饭入。在項(xiàng)目中經(jīng)常會(huì)將用戶數(shù)據(jù)管理封裝成一個(gè)單例類,因此用戶的信息需要全局使用肛真。

MVC設(shè)計(jì)模式:現(xiàn)在絕大部分項(xiàng)目都是基于MVC設(shè)計(jì)模式的谐丢,現(xiàn)在有一部分開(kāi)發(fā)者采用MVVM、MVP等模式蚓让。

通知(NSNotification)模式:通知在開(kāi)發(fā)中是必不可少的乾忱,對(duì)于跨模塊的類交互,需要使用通知历极;對(duì)于多對(duì)多的關(guān)系窄瘟,使用通知更好實(shí)現(xiàn)。

工廠設(shè)計(jì)模式:在我的項(xiàng)目中使用了大量的工廠設(shè)計(jì)模式趟卸,特別是生成控件的API蹄葱,都已經(jīng)封裝成一套,全部是擴(kuò)展的類方法衰腌,可簡(jiǎn)化很多的代碼。

KVC/KVO設(shè)計(jì)模式:有的時(shí)候需要監(jiān)聽(tīng)某個(gè)類的屬性值的變化而做出相應(yīng)的改變觅赊,這時(shí)候會(huì)使用KVC/KVO設(shè)計(jì)模式右蕊。在項(xiàng)目中,我需要監(jiān)聽(tīng)model中的某個(gè)屬性值的變化吮螺,當(dāng)變化時(shí)饶囚,需要更新UI顯示,這時(shí)候使用KVC/KVO設(shè)計(jì)模式就很方便了鸠补。

就說(shuō)這么多吧萝风,還有很多的設(shè)計(jì)模式,不過(guò)其它并不是那么常用紫岩。

如何實(shí)現(xiàn)單例规惰,單例會(huì)有什么弊端?

單例在項(xiàng)目中的是必不可少的泉蝌,它可以使我們?nèi)侄伎晒蚕砦覀兊臄?shù)據(jù)歇万。這只是簡(jiǎn)單的問(wèn)題,大家根據(jù)自己的情況回答勋陪。

參考答案:

首先贪磺,單例寫法有好幾種,通常的寫法是基于線程安全的寫法诅愚,結(jié)合dispatch_once來(lái)使用寒锚,保證單例對(duì)象只會(huì)被創(chuàng)建一次。如果不小心銷毀了單例,再調(diào)用單例生成方法是不會(huì)再創(chuàng)建的刹前。

其次泳赋,由于單例是約定俗成的,因此在實(shí)際開(kāi)發(fā)中通常不會(huì)去重寫內(nèi)存管理方法腮郊。

單例確實(shí)給我們帶來(lái)的便利摹蘑,但是它也會(huì)有代價(jià)的。單例一旦創(chuàng)建轧飞,整個(gè)App使用過(guò)程都不會(huì)釋放衅鹿,這會(huì)占用內(nèi)存,因此不可濫用單例过咬。

iOS是如何管理內(nèi)存的大渤?

我相信很多人的回答是內(nèi)存管理的黃金法則,其實(shí)如果我是面試官掸绞,我想要的答案不是這樣的泵三。我希望的回答是工作中如何處理內(nèi)存管理的。

參考答案:

Block內(nèi)存管理:由于使用block很容易造成循環(huán)引用衔掸,因此一定要小心內(nèi)存管理問(wèn)題烫幕。最好在基類controller下重寫dealloc,加一句打印日志敞映,表示類可以得到釋放较曼。如果出現(xiàn)無(wú)打印信息,說(shuō)明這個(gè)類一直得不到釋放振愿,表明很有可能是使用block的地方出現(xiàn)循環(huán)引用了捷犹。對(duì)于block中需要引用外部controller的屬性或者成員變量時(shí),一定要使用弱引用冕末,特別是成員變量像_testId這樣的萍歉,很多人都沒(méi)有使用弱引用,導(dǎo)致內(nèi)存得不到釋放档桃。

對(duì)于普通所創(chuàng)建的對(duì)象枪孩,因?yàn)楝F(xiàn)在都是ARC項(xiàng)目,所以記住內(nèi)存管理的黃金法則就可以解決藻肄。

使用過(guò)哪些第三方庫(kù)销凑?

開(kāi)發(fā)過(guò)App,如果回答說(shuō)沒(méi)有使用過(guò)第三方庫(kù)仅炊,那么這個(gè)人一定是剛?cè)腴T斗幼。如果回答者能夠說(shuō)出很多有名的第三方庫(kù),并且能說(shuō)明使用場(chǎng)景抚垄,那么可以突出這個(gè)面試者的知識(shí)面還是很廣的蜕窿,這是可以加分的谋逻。

參考答案:

關(guān)于常用的第三方庫(kù),筆者整理了一下自己常用的庫(kù)桐经,但并不是全部:http://www.henishuo.com/ios-thirdparty/

對(duì)多線程了解嗎毁兆?

對(duì)GCD熟悉嗎?iOS中實(shí)現(xiàn)多線程有哪些方式阴挣?與這些問(wèn)題一樣气堕,都是考查多線程的知識(shí)。

參考答案:

關(guān)于GCD畔咧,請(qǐng)閱讀:GCD由淺入深學(xué)習(xí)

關(guān)于多線程N(yùn)SOperation茎芭,請(qǐng)閱讀:iOS多線程N(yùn)SOperation/Queue

問(wèn)題來(lái)源

部分問(wèn)題來(lái)源于github上,筆者也是在看到之后誓沸,花時(shí)間回答了一下梅桩,大家可以參考問(wèn)題,但是無(wú)參考答案:https://github.com/lzyy/iOS-Developer-Interview-Questions

還有一部分是筆者提的問(wèn)題0菟怼K薨佟!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末洪添,一起剝皮案震驚了整個(gè)濱河市垦页,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌干奢,老刑警劉巖痊焊,帶你破解...
    沈念sama閱讀 221,548評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異律胀,居然都是意外死亡宋光,警方通過(guò)查閱死者的電腦和手機(jī)貌矿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門炭菌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人逛漫,你說(shuō)我怎么就攤上這事黑低。” “怎么了酌毡?”我有些...
    開(kāi)封第一講書人閱讀 167,990評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵克握,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我枷踏,道長(zhǎng)菩暗,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 59,618評(píng)論 1 296
  • 正文 為了忘掉前任旭蠕,我火速辦了婚禮停团,結(jié)果婚禮上旷坦,老公的妹妹穿的比我還像新娘。我一直安慰自己佑稠,他們只是感情好秒梅,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著舌胶,像睡著了一般捆蜀。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上幔嫂,一...
    開(kāi)封第一講書人閱讀 52,246評(píng)論 1 308
  • 那天辆它,我揣著相機(jī)與錄音,去河邊找鬼婉烟。 笑死娩井,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的似袁。 我是一名探鬼主播洞辣,決...
    沈念sama閱讀 40,819評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼昙衅!你這毒婦竟也來(lái)了扬霜?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 39,725評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤而涉,失蹤者是張志新(化名)和其女友劉穎著瓶,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體啼县,經(jīng)...
    沈念sama閱讀 46,268評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡材原,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了季眷。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片余蟹。...
    茶點(diǎn)故事閱讀 40,488評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖子刮,靈堂內(nèi)的尸體忽然破棺而出威酒,到底是詐尸還是另有隱情,我是刑警寧澤挺峡,帶...
    沈念sama閱讀 36,181評(píng)論 5 350
  • 正文 年R本政府宣布葵孤,位于F島的核電站,受9級(jí)特大地震影響橱赠,放射性物質(zhì)發(fā)生泄漏尤仍。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評(píng)論 3 333
  • 文/蒙蒙 一狭姨、第九天 我趴在偏房一處隱蔽的房頂上張望宰啦。 院中可真熱鬧鲤嫡,春花似錦、人聲如沸绑莺。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,331評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)纺裁。三九已至诫肠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間欺缘,已是汗流浹背栋豫。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,445評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留谚殊,地道東北人丧鸯。 一個(gè)月前我還...
    沈念sama閱讀 48,897評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像嫩絮,于是被迫代替她去往敵國(guó)和親丛肢。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評(píng)論 2 359

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

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,280評(píng)論 25 707
  • 前言 面試題中有一些一般性的問(wèn)題剿干,通常是會(huì)問(wèn)到的蜂怎。面試iOS應(yīng)聘者時(shí),切入點(diǎn)很重要置尔,不同的切入點(diǎn)會(huì)導(dǎo)致不同的結(jié)果杠步,...
    安成林閱讀 518評(píng)論 0 3
  • 大早上谬盐。D就問(wèn)我甸私,是不是和A好了?我說(shuō)是啊设褐,我脫單了颠蕴。你就死心吧~泣刹。然后就沒(méi)有了回復(fù)助析,估計(jì)他會(huì)失落吧。也是椅您,畢竟D...
    最后一騎士閱讀 505評(píng)論 0 0
  • 一想起鬼外冀,有很多人都怕,特別是中國(guó)人掀泳,在小說(shuō)中雪隧,在電視劇中西轩,中國(guó)的鬼是好有中國(guó)特式。首先要有一把烏黑亮麗的秀發(fā)脑沿,標(biāo)...
    神的子民閱讀 9,941評(píng)論 1 6
  • 首先說(shuō)一個(gè)基本例子: //人類 class Human{public: void say(){ cout << "...
    貝克街的貓大哥呀閱讀 192評(píng)論 0 0