前言
面試題中有一些一般性的問題,通常是會(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ì)!