常見的iOS面試問題蘸炸,一眼就能看出 初級(jí)和高級(jí)工程師的區(qū)別

前言

面試題中有一些一般性的問題,通常是會(huì)問到的尖奔。面試iOS應(yīng)聘者時(shí)搭儒,切入點(diǎn)很重要穷当,不同的切入點(diǎn)會(huì)導(dǎo)致不同的結(jié)果,沒有找到合適的切入點(diǎn)也無法對(duì)應(yīng)聘者有一個(gè)全面的了解淹禾。

所以下面的面試問題更多的是提供方向馁菜,沒有固定的答案,而且可以根據(jù)應(yīng)聘者的回應(yīng)引出更多有意思深層次的討論铃岔。

注意:以下問題的參考答案均為筆者所答汪疮,不代表正確,問題答案因人而異毁习,請(qǐng)根據(jù)自己的實(shí)際情況回答铲咨,若認(rèn)為不合理,請(qǐng)?jiān)谠u(píng)論中指出蜓洪。下面所有的參考答案纤勒,都是筆者站在面試官的角度來分析的,不同的面試官也會(huì)不一樣隆檀。筆者面試過一些人摇天,一問就可以知道對(duì)方的底子如何了,雖然如此恐仑,不代表參考答案是每個(gè)面試官想要的泉坐。

自我介紹

自我介紹時(shí),一定要簡潔明了裳仆,不要長篇大論腕让。以我個(gè)人而言,最不喜歡自我介紹說了一大堆歧斟,最后連她/他叫什么名字都沒記住纯丸。

參考答案:

自我介紹時(shí),突出重點(diǎn)静袖,說話慢一些觉鼻,在關(guān)鍵點(diǎn)聲音大一點(diǎn)。本人回答時(shí)队橙,就簡單地說: 我叫某某某坠陈,做iosX年了,曾在XX公司擔(dān)任過XX職務(wù)捐康,在YY公司擔(dān)任過XX職務(wù)仇矾,主要負(fù)責(zé)ZZ工作。業(yè)余喜歡做NN(要說積極點(diǎn)的)解总,擅長LL(把自己的特長說明白)等贮匕。

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

對(duì)于這個(gè)問題倾鲫,面試官肯定知道作為求職者粗合,這兩天肯定是在忙于找工作萍嬉、面試。那么隙疚,面試官問出這樣的問題的目的是什么壤追?如果我是面試官,我最想了解的是這兩天你為此次面試準(zhǔn)備了什么而不僅僅是告訴面試官這兩天學(xué)習(xí)了某一方面的知識(shí)供屉。

整理的2020年《大廠最新常問iOS面試題+答案》行冰,有需要的伙伴,直接加iOS技術(shù)交流群:761407670伶丐,進(jìn)群密碼“000”悼做,免費(fèi)獲取哗魂;群內(nèi)更有內(nèi)推機(jī)會(huì)肛走!

參考答案:

這兩天為了準(zhǔn)備面試,整理了以前所做過的一些項(xiàng)目的筆記录别,回頭看了看以前的工作日志朽色。一來是整理一些在工作中經(jīng)常遇到的坑,比如cell重用問題组题、ios6適配問題等葫男;二來是回頭告別過去的自己,在思想上崔列、技術(shù)上迎來全新的自我梢褐;三來定位自己下一個(gè)目標(biāo):往架構(gòu)師方向深入研究。

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

這個(gè)問題的關(guān)鍵是酷和挑戰(zhàn)盈咳。其實(shí)這里所說的酷對(duì)應(yīng)于開發(fā)中的動(dòng)畫,而挑戰(zhàn)則對(duì)應(yīng)于開發(fā)中的沖刺瘦癌。對(duì)于筆者而言猪贪,其實(shí)并沒有做過特別酷的項(xiàng)目,但是做過有挑戰(zhàn)性的項(xiàng)目讯私。但是沒有做過并不是就不用回答,面試官想看到的是你的學(xué)習(xí)能力西傀、應(yīng)用能力以及解決問題的能力斤寇,而不是一句沒做過或者沒什么挑戰(zhàn)性這樣的話語。

參考答案:

我之前所負(fù)責(zé)的項(xiàng)目大多是電商項(xiàng)目拥褂,因此并不會(huì)特別酷娘锁,但是業(yè)務(wù)比較多,很有技術(shù)挑戰(zhàn)性饺鹃。不過莫秆,平時(shí)我也深入研究過ios核心動(dòng)畫相關(guān)知識(shí)间雀,對(duì)于常用的動(dòng)畫是很熟悉的。在我看來镊屎,用戶體驗(yàn)并不是所謂的酷惹挟,而是簡單、方便且明了缝驳。我很在意用戶體驗(yàn)問題连锯,在開發(fā)中會(huì)不斷地站在用戶的角度地問自己用戶討厭什么、喜歡什么和怎樣才能讓用戶感覺容易上手且使用簡單等問題用狱。比如运怖,我會(huì)很在意網(wǎng)絡(luò)狀態(tài)的變化給用戶的提示、請(qǐng)求網(wǎng)絡(luò)時(shí)右上角的轉(zhuǎn)圈圈是否開啟夏伊、滾動(dòng)cell時(shí)是否有卡頓的問題等摇展。

我待過幾家公司,從一個(gè)人開發(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è)人在開發(fā)研底,而這個(gè)人往往是菜鳥的多埠偿,因此都是東拼西湊而形成的項(xiàng)目,技術(shù)不成熟榜晦、水平不夠冠蒋,而且還被壓著不斷加班,因此幾乎不會(huì)過多關(guān)注用戶體驗(yà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ì)開發(fā)不同的業(yè)務(wù)需求喻频,因此這樣就面臨技術(shù)架構(gòu)問題缩宜、安全問題、團(tuán)隊(duì)開發(fā)如何做到互不干擾等問題了。

而我在團(tuán)隊(duì)中的主要職責(zé)是處理團(tuán)隊(duì)之間沖突的問題锻煌、如何代碼模塊化以減少團(tuán)隊(duì)之外的依賴問題妓布、移動(dòng)端安全通信問題、項(xiàng)目存儲(chǔ)安全問題宋梧、公共框架等問題匣沼,這一系列都是非常有技術(shù)挑戰(zhàn)的,需要花費(fèi)很多非工作時(shí)間去調(diào)研乃秀、寫demo肛著、寫文檔等。

最近看過的書/文章有哪些跺讯?

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

參考答案:

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

為什么要學(xué)習(xí)編程杭跪,編程對(duì)你而言的樂趣在哪兒仙逻?

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

參考答案:

說到這個(gè)問題桥言,我曾經(jīng)也問過自己為什么要學(xué)習(xí)編程萌踱。回想當(dāng)年高考結(jié)果出來的時(shí)候号阿,需要選擇學(xué)校和專業(yè)的時(shí)候是很迷茫的虫蝶,不知上大學(xué)應(yīng)該學(xué)點(diǎn)什么。后來倦西,我選擇了計(jì)算機(jī)科學(xué)與技術(shù)專業(yè),并為了這個(gè)專業(yè)而選擇學(xué)校赁严。

由于高考考得不好扰柠,雖然超過一本線粉铐,但是高不成低不就,很多高校的計(jì)算機(jī)專業(yè)要求總分達(dá)到560(當(dāng)時(shí)一本線是502分)左右才能穩(wěn)拿到這個(gè)專業(yè)卤档,而我才考了526分蝙泼,想想計(jì)算機(jī)專業(yè)很強(qiáng)的高校是很難進(jìn)的。于是選擇了從廣西到沈陽這么遙遠(yuǎn)的地方上學(xué)劝枣,竟然是為了計(jì)算機(jī)專業(yè)汤踏,現(xiàn)在回想起來還自己偷笑。

在大學(xué)的時(shí)候舔腾,大一天天在圖書館提前學(xué)習(xí)編程溪胶,因?yàn)閯?dòng)手能力突出,到大二的時(shí)候有好多教計(jì)算機(jī)的老師提前知道了這樣的我稳诚,感謝他們的認(rèn)可哗脖,在大學(xué)這幾年,是他們引導(dǎo)我如何編程實(shí)戰(zhàn)扳还。大學(xué)的時(shí)候做過很多PC端的軟件(.net開發(fā)的)才避、給老師做過教程網(wǎng)站(ASP.net開發(fā)的)、參加學(xué)習(xí)的ACM訓(xùn)練等等氨距,一切的一切桑逝,都要感謝那些教導(dǎo)我的恩師們。

后來通過學(xué)長了解到未來就業(yè)的一些動(dòng)向俏让,了解到畢業(yè)后如何找工作楞遏,學(xué)習(xí)了iOS開發(fā),于是越來越愛她了舆驶。如果非要說編程的樂趣在哪里橱健,我想說在討論技術(shù)的時(shí)候就像和同學(xué)、朋友一起玩LOL的時(shí)候沙廉;在解決掉一個(gè)別人解決不了的bug的時(shí)候拘荡,那是一種想要向全世界大聲說:YES,I Can;當(dāng)我們與技術(shù)總監(jiān)并肩作戰(zhàn)撬陵,一起為了項(xiàng)目上線熬夜珊皿,總監(jiān)為我們買夜宵一起吃的時(shí)候,那就是兄弟情誼巨税,那會(huì)有種相見恨晚的感覺蟋定。

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

這樣的問題通過應(yīng)聘者的分析,可以知道應(yīng)聘者的功底如何。很多人的回答會(huì)是很簡單的抄淑,沒有從多方面去分析屠凶。這樣的問題也是很有意義的,在項(xiàng)目開發(fā)中所產(chǎn)生的bug肆资,有的時(shí)候會(huì)出現(xiàn)這樣的情況矗愧,而代碼量比較大且業(yè)務(wù)比較復(fù)雜時(shí),通過其他工具并不能分析出來是什么bug郑原,但是我們卻可以根據(jù)出現(xiàn)的頻率推測(cè)唉韭。筆者把這個(gè)問題當(dāng)作測(cè)試部反饋過來的bug描述問題來分析一下。

參考答案:

從問題描述可知犯犁,bug不會(huì)必現(xiàn)的属愤,因此無法直接定位出錯(cuò)之處。從以下角度出現(xiàn)來分析可能出錯(cuò)之處:

因出錯(cuò)并不是崩潰栖秕,因此沒有錯(cuò)誤日志可看春塌。第一步就是分析函數(shù)中的所有分支,是否在語法上存在可能缺少條件的問題簇捍。所以只壳,檢查所有的分支,確保每個(gè)分支執(zhí)行的結(jié)果的正確的

檢測(cè)函數(shù)的參數(shù)暑塑,保證必傳參數(shù)不能為空吼句,若為空應(yīng)該拋出異常。因此事格,用斷言檢測(cè)參數(shù)的正確性是很重要的惕艳。

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

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

人最大的敵人不是別人逢捺,而是自己谁鳍。戰(zhàn)勝自己,才是最大的勝利劫瞳。很多人不清楚自己的優(yōu)點(diǎn)是什么倘潜,甚至很多朋友喜歡說我最大的優(yōu)點(diǎn)是沒有缺點(diǎn)。如果是對(duì)面試官說這一句話志于,那么你可能被pass掉了涮因。

參考答案:

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

我學(xué)習(xí)能力特別強(qiáng)养泡,接受新事物的能力也特別強(qiáng)嗜湃。比如,我在工作之余還會(huì)去學(xué)習(xí)swift瓤荔、PHP净蚤、js等。

我喜歡寫博客输硝、寫總結(jié)、分享技術(shù)程梦、幫助他人等点把。我覺得寫博客的過程,既讓自己對(duì)相關(guān)知識(shí)有更深刻的認(rèn)識(shí)屿附,更是幫助到他人郎逃。每做一期需求,我都會(huì)寫一份總結(jié)挺份,記錄那些坑褒翰。在公司每個(gè)季度都會(huì)做幾次技術(shù)分享,帶動(dòng)團(tuán)隊(duì)的技術(shù)氛圍匀泊。我也喜歡幫助他人优训,我創(chuàng)建了自己的技術(shù)群,短短1個(gè)月群就滿500人了各聘,在群里通過回答大家問題揣非,也讓我了解到很多知識(shí)。

我開發(fā)過多款A(yù)pp躲因,解決問題的能力很強(qiáng)早敬。在團(tuán)隊(duì)中充當(dāng)技術(shù)主心骨,任何隊(duì)員解決不好的問題大脉,我都會(huì)幫助一起解決掉搞监。

我對(duì)技術(shù)構(gòu)架、團(tuán)隊(duì)如何解藕方面都有所研究镰矿。在團(tuán)隊(duì)開發(fā)中琐驴,因?yàn)榻?jīng)常面臨團(tuán)隊(duì)開發(fā)存在交差的問題,導(dǎo)致需求變動(dòng)引起很多問題衡怀,因此研究過如何讓團(tuán)隊(duì)之間減少依賴的問題棍矛。

我活躍于GITHUB、CocoaChina抛杨、CSDN等够委,對(duì)于iOS相關(guān)技術(shù)知識(shí)比較熟悉。

就說這么多吧怖现!(因?yàn)槊嬖嚫呒?jí)人員通常會(huì)交談3個(gè)小時(shí)左右茁帽,所以盡可能地說吧玉罐,不要害怕時(shí)間過長)

有沒有在 GitHub 上發(fā)布過開源代碼,參與過開源項(xiàng)目潘拨?

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

參考答案:

這里我的開源庫的地址標(biāo)哥的GitHub,里面除了一些開源庫之外琅束,還有很多的demo扭屁,每個(gè)demo都有對(duì)應(yīng)的博客文章講解,那都是我感覺學(xué)習(xí)的成果涩禀。

我在GITHUB上發(fā)布過很多開源代碼料滥,也提供了支持cocoapods的開源項(xiàng)目,現(xiàn)在也有不少人在使用艾船,當(dāng)然我也會(huì)一直維護(hù)著葵腹,不過我并沒有參與過其他人發(fā)起的開源項(xiàng)目。

你最近遇到過的一個(gè)技術(shù)挑戰(zhàn)是什么屿岂?怎么解決的践宴?

通過應(yīng)聘者回答所遇到過的技術(shù)挑戰(zhàn),其實(shí)從側(cè)面就可以看出這個(gè)人的水平如何了雁社。如果回答的技術(shù)挑戰(zhàn)是個(gè)簡單的問題浴井,而在應(yīng)聘者這里卻是技術(shù)挑戰(zhàn),那么就可以知道這水平是初級(jí)的霉撵。然后應(yīng)聘者針對(duì)這個(gè)技術(shù)挑戰(zhàn)所給出的解決方案也可以看出面對(duì)技術(shù)挑戰(zhàn)磺浙,可以看出應(yīng)聘者處理問題的能力。

參考答案:

最近公司項(xiàng)目中的用戶賬號(hào)出現(xiàn)被盜現(xiàn)象徒坡,原因是通信安全問題處理不好撕氧。因?yàn)楣镜捻?xiàng)目已經(jīng)是好幾年的老項(xiàng)目了,包括服務(wù)端的接口好多是老接口喇完,原來是沒有處理任何加密的伦泥,因此很容易被盜取賬號(hào)。現(xiàn)在我們的技術(shù)VP要求針對(duì)這個(gè)問題锦溪,做一個(gè)版本不脯。因?yàn)橹鲃?dòng)接受挑戰(zhàn),所以這個(gè)重任落在了我的身上刻诊,由我來牽頭做好這個(gè)需求防楷。

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

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

寫好技術(shù)文檔冲簿,將調(diào)研結(jié)果反饋出來并寫出自己的技術(shù)方案;

開初步技術(shù)方案評(píng)審會(huì)亿昏,會(huì)有VP及各組Leader參與峦剔,會(huì)上會(huì)提出各種問題,并給予一一解答角钩,然后做會(huì)議記錄吝沫,會(huì)后繼續(xù)完善文檔;

開跨部分評(píng)審會(huì)彤断,只有所有都通過了野舶,才能立項(xiàng)。

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

為什么要這么麻煩睹欲?因?yàn)槲覀兗纫嫒菀郧暗乃邪姹竟┝叮忠WC技術(shù)安全,那就不會(huì)自己就能說了算的窘疮,而且也不僅僅是客戶端的問題袋哼。

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

既然是技術(shù),那么就要說明是什么技術(shù)蔚出,至于為什么想要掌握弟翘,當(dāng)然是想要在技術(shù)上更上一層樓。

參考答案:

我現(xiàn)在一直在研究runtime相關(guān)知識(shí)骄酗。掌握runtime相關(guān)技術(shù)稀余,可以做很多正常狀態(tài)下做不到的事、可以讓做一些自動(dòng)化處理工作趋翻、解決代碼依賴問題等睛琳。目前已經(jīng)對(duì)runtime中的成員變量、屬性踏烙、消息轉(zhuǎn)發(fā)师骗、Swizzling等可以熟練使用。關(guān)于runtime專題讨惩,大家可以閱讀我的博客專題:iOS Runtime相關(guān)知識(shí)點(diǎn)

你一般是怎么用Instruments的辟癌?

這個(gè)就是工作經(jīng)驗(yàn)的問題了。Instruments工具里面有很多個(gè)選項(xiàng)步脓,沒有必要每個(gè)都答愿待,其實(shí)筆者也只用過里面的幾個(gè)而已浩螺。

參考答案:

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

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

使用Zombies來檢測(cè)過早釋放的僵尸對(duì)象仍侥,通過它可以檢測(cè)出在哪里崩潰的要出。

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

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

項(xiàng)目中使用了很多的設(shè)計(jì)模式农渊,我相信面試官最好聽到的不僅僅是設(shè)計(jì)模式的名字患蹂,更想聽到的是這些設(shè)計(jì)模式在項(xiàng)目中如何應(yīng)用。因此砸紊,筆者認(rèn)為這個(gè)問題隱式地說明了應(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)在有一部分開發(fā)者采用MVVM唆涝、MVP等模式找都。

通知(NSNotification)模式:通知在開發(fā)中是必不可少的,對(duì)于跨模塊的類交互廊酣,需要使用通知能耻;對(duì)于多對(duì)多的關(guān)系,使用通知更好實(shí)現(xiàn)亡驰。

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

KVC/KVO設(shè)計(jì)模式:有的時(shí)候需要監(jiān)聽某個(gè)類的屬性值的變化而做出相應(yīng)的改變煞茫,這時(shí)候會(huì)使用KVC/KVO設(shè)計(jì)模式帕涌。在項(xiàng)目中,我需要監(jiān)聽model中的某個(gè)屬性值的變化续徽,當(dāng)變化時(shí)蚓曼,需要更新UI顯示,這時(shí)候使用KVC/KVO設(shè)計(jì)模式就很方便了钦扭。

就說這么多吧纫版,還有很多的設(shè)計(jì)模式,不過其它并不是那么常用客情。

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

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

參考答案:

首先糊识,單例寫法有好幾種绩社,通常的寫法是基于線程安全的寫法,結(jié)合dispatch_once來使用赂苗,保證單例對(duì)象只會(huì)被創(chuàng)建一次愉耙。如果不小心銷毀了單例,再調(diào)用單例生成方法是不會(huì)再創(chuàng)建的拌滋。

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

單例確實(shí)給我們帶來的便利悯仙,但是它也會(huì)有代價(jià)的。單例一旦創(chuàng)建吠卷,整個(gè)App使用過程都不會(huì)釋放,這會(huì)占用內(nèi)存沦零,因此不可濫用單例祭隔。

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

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

參考答案:

Block內(nèi)存管理:由于使用block很容易造成循環(huán)引用搞坝,因此一定要小心內(nèi)存管理問題。最好在基類controller下重寫dealloc魁袜,加一句打印日志桩撮,表示類可以得到釋放。如果出現(xiàn)無打印信息峰弹,說明這個(gè)類一直得不到釋放店量,表明很有可能是使用block的地方出現(xiàn)循環(huán)引用了。對(duì)于block中需要引用外部controller的屬性或者成員變量時(shí)鞠呈,一定要使用弱引用融师,特別是成員變量像_testId這樣的,很多人都沒有使用弱引用蚁吝,導(dǎo)致內(nèi)存得不到釋放旱爆。

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

使用過哪些第三方庫脆烟?

開發(fā)過App,如果回答說沒有使用過第三方庫空镜,那么這個(gè)人一定是剛?cè)腴T浩淘。如果回答者能夠說出很多有名的第三方庫,并且能說明使用場(chǎng)景吴攒,那么可以突出這個(gè)面試者的知識(shí)面還是很廣的张抄,這是可以加分的

整理的2020年《大廠最新常問iOS面試題+答案》,有需要的伙伴洼怔,直接加iOS技術(shù)交流群:761407670署惯,進(jìn)群密碼“000”,免費(fèi)獲攘土ァ极谊;群內(nèi)更有內(nèi)推機(jī)會(huì)!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末安岂,一起剝皮案震驚了整個(gè)濱河市轻猖,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌域那,老刑警劉巖咙边,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異次员,居然都是意外死亡败许,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門淑蔚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來市殷,“玉大人,你說我怎么就攤上這事刹衫〈浊蓿” “怎么了?”我有些...
    開封第一講書人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵绪妹,是天一觀的道長甥桂。 經(jīng)常有香客問我,道長邮旷,這世上最難降的妖魔是什么黄选? 我笑而不...
    開封第一講書人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上办陷,老公的妹妹穿的比我還像新娘貌夕。我一直安慰自己,他們只是感情好民镜,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開白布啡专。 她就那樣靜靜地躺著,像睡著了一般制圈。 火紅的嫁衣襯著肌膚如雪们童。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,764評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼季稳。 笑死,一個(gè)胖子當(dāng)著我的面吹牛齐板,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播葛菇,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼甘磨,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了眯停?” 一聲冷哼從身側(cè)響起济舆,我...
    開封第一講書人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎莺债,沒想到半個(gè)月后吗冤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡九府,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了覆致。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片侄旬。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖煌妈,靈堂內(nèi)的尸體忽然破棺而出儡羔,到底是詐尸還是另有隱情,我是刑警寧澤璧诵,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布汰蜘,位于F島的核電站,受9級(jí)特大地震影響之宿,放射性物質(zhì)發(fā)生泄漏族操。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望色难。 院中可真熱鬧泼舱,春花似錦、人聲如沸枷莉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽笤妙。三九已至冒掌,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蹲盘,已是汗流浹背股毫。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留辜限,地道東北人皇拣。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像薄嫡,于是被迫代替她去往敵國和親氧急。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348