iOS面試題總結與感想

來源:互聯網
上載者:User

標籤:物件類型   機制   archive   nsthread   電腦網路   ios   photo   -o   cocos2d   

必須先吐槽一下,找工作面試確實是個累人的活呀,所以—>跳槽有風險,選擇需謹慎.LZ我為什麼要換工作呢?就不在這裡說明了…直接進入正題,這周的面試基本每天從早面到晚,面試表都填吐了…大小公司都有,列舉下這段時間常見的面試題和一些個人理解.PS:LZ我水平有限,不好的地方,大家輕噴^_^!(由於全然是靠記憶,列舉順序純憑感覺0.0)

  1. @property中的assign,retain,copy,nonatomic的意思各自是什麼? (解釋略…你懂的)
  2. weakassign的差別,strongretain的差別,copyretain的差別?


    assign適用於非物件類型,weak弱引用在引用計數為0的時候會將對象置為nil.
    事實上從這個也能夠引申到記憶體管理的一系列問題.面試官會讓你講講MRCARC的理解,隨即也引申出Block的記憶體機制,為啥推薦Blockcopy,Block會存在哪些記憶體問題?

    循環參考?


    推薦一個文章,講的蠻不錯的,裡面也有對Block的連結引用->傳送門,請點擊我

  3. 依然是記憶體管理,releaseautorelease的含義?這裡尤其要強調下autorelease,它引申出自己主動釋放池,也能引申出Run loop!
    參考下這兩個連結:參考1號@參考2號(PS:有的連結可能須要FQ,可是作為一個開發人員來說, 擁有VPN進行google還是必備的吧!)
  4. OC語言的動態性指什麼?有沒有瞭解過objective-c runtime的相關問題?它包含那些含義?
    依然給出一些不錯的文章連結:Number1@Number2@Number3
  5. 使用過Core Graphic Core Animation Quartz Core等經常使用架構嗎?在什麼條件下會用到?

    能夠實現什麼功能?一般這樣的問題,都是涉及到你自己定義UI控制項的能力,以及能夠實現炫麗動畫效果的能力.(含義非常廣,大家自行找資料,還是推薦個0.0->講Core Animation的)

  6. iOS中多線程有哪幾種?

    各自之間有什麼差別?這個問題,毋庸置疑,必問!!!
    NSThread:貌似基本沒到過…囧….能夠去瞭解下….
    NSOperation:據說是用在處理複雜的情況下…經常被問到與GCD的不同,LZ略糾結每次都不知道怎麼回答,僅僅能說一個處理複雜情況一個處理簡單情況…也沒用到過…只是你研究下AFNetworking的原始碼,能夠發現,它的核心類是繼承NSOperation的…
    GCD:經常使用…這個能夠看看我的部落格,裡面非常多它的介紹! 點這裡

  7. 資料存放區這一塊,你經常使用哪一種?什麼是序列化?

    sqlite是直接用它還是用封裝了它的第三方庫?sqlitecore data的差別?
    LZ碰到的基本都是問sqlitecore data的差別…從什麼方面來決定一個項目採用哪種方式來做儲存…個人認為沒有必要區分誰好誰壞…都去瞭解掌握肯定是有優點的…網上有非常多講兩個之間的差別,可是就算你知道差別,假設兩個都用不好也是白搭.唯有一解->學!學!學

  8. 代理通知…分別在什麼情況下使用?

    差別?

    各自優點?

    (略,略,略,自行Google)

  9. 你經常使用一些第三方庫嗎?比方AFNetworking SDWebimage JsonModel等,有沒有去瞭解過裡面的實現原理?


    強烈推薦大家,最好都去看看原始碼,不要僅僅知其而不知其所以然,能夠學習到非常多知識.也算是一次總體知識架構的溫習,也能學習到一些優秀庫的設計模式等.

  10. KVCKVO是什麼?

  11. 是否瞭解Socket網路編程?是否明確TCP/IP HTTP UDP等協議知識?
    參考1號@參考2號…非常多,自己去找吧
  12. 你知道哪些設計模式?實際項目中運用到了嗎?(LZ我僅僅回答了,單例-策略-觀察者-工廠-代理(事實上我認為代理不能算進去))
  13. MVC是什麼?你能畫出它們之間的關係圖嗎?

    (對的,繪圖)

  14. 你的C++怎樣?演算法和資料結構呢?(這個都是淚呀)->依然是補!補!補!
  15. Autolayout的理解…使用的怎麼樣?

    能夠看看我的這篇…儘管沒具體講Autolayout…大家能夠多搜搜…這就是涉及到你寫代碼是純程式碼還是storyboard了…建立兩種都必須掌握.

  16. 有沒有學習Swift?這個,LZ建議,畢竟蘋果給你開發的架構庫沒變,能夠拿它寫寫Demo保持認識度,要不然,你僅僅看不寫,過一段時間又把它忘記了,就白看了…親身體會…起碼我如今能用swift來寫寫一些Demo就用它來寫寫….工作肯定還是用OC啦,只是也有的公司說已經全然用swift來開發了,僅僅能說,畢竟還僅僅是非常少數的…
  17. 眼下臨時想到這些…假設還有,再更新!0.0

說以下試的感想吧:
+ 並非會寫OC,會調用API,你就是一個iOS開發project師了…你必須擴充你知識的廣度和深度,對於非常多招聘要求你會C++的時候,不要老想著自己是來應聘iOSproject師而不是C++project師…語言僅僅是一種工具,當你功力OK的時候,你會發現去學習一門語言沒有你想象的那麼難,僅僅能說要精通是略難的…非常多時候須要的是你有那麼一種概念,比方你項目中須要去調用一個庫,那個庫是C++寫的,假設你全然看不懂,咋辦…這也就是說並非要你自己全然的去寫一個出來…我們開發的非常多時候,都是要善於運用第三方的架構…再舉個範例,音頻視頻…解碼轉碼或者什麼什麼的,具體的東西可能不須要你去瞭解,你僅僅須要會使用一種工具(如:ffmpeg)來完畢它.
+ LZ我就像我上面說的那樣…羞愧呀…只是算是從學swift後,換了一種思想,不再那樣的去排斥語言間的不同了,認為自己也要在平時有空暇的時候,認真的學習下c++(事實上我曾經是想做遊戲的…還說自學cocos2dx),也能夠把大學裡面有關電腦網路的書籍再次看下,多瞭解下網路編程…TCP/IP…HTTP協議等.
+ 開發應用,不要僅僅停留在一個方向…多橫向發展,接觸下其它類型的應用.比方,我找工作就有意於IM 音頻視頻等,畢竟沒接觸過…可是這僅僅是個人意願,前提別人肯要我,0.0哭0.0
+ 切記好高騖遠,一步登天…技術須要沉澱,心態須要淡定,什麼時候都要虛心學習.前面我說的都是建立在你做好基本事情的基礎上…想想,啥都不精,沒有一技之長,怎麼能脫穎而出?怎麼能夠完畢你所在崗位的任務?iOS開發這一塊的知識也要保持不斷的學習…UI布局-動畫效果-邏輯控制-資料存放區-和各端的對接-總體架構.
+ 公司的項目應該全部的都是結果導向性,假設你完畢不了任務,那麼你完畢任務過程中全部的出彩點都會變得一無是處.
+ 依然臨時想到這些…再想到別的,再更新…待續.~O(∩_∩)O~

iOS面試題總結與感想

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.