最新收錄:各大廠iOS開發面試題 前言 iOS面試題真題

前言

關於面試題,可能沒那麼多時間來總結答案,有什麼需要討論的地方歡迎文末留言。主要記錄一下準備過程,和麪試的一些總結,希望能幫助到正在面試或者將要面試的朋友吧。

iOS面試題真題

美團外賣

  • uni-app這個東西是啥,你覺着咋樣?
  • 從前臺到後臺的一次請求經歷了哪些階段?
  • http/https的工作過程和區別、它們屬於五層中的哪一層
  • 三次握手的原理
  • get/put/post/delete請求方式
  • 項目裏面你做了什麼性能優化和啓動改造
  • 爲什麼WKWebview的性能比UIWebview的性能高
  • runtime的消息轉發機制
  • runtime的具體用法
  • KVC
  • @synthesize和@dynamic分別有什麼作用
  • 36匹馬,六個跑道。沒有記時器等設備,用最少的比賽次數算出跑的最快的馬
  • setNeedsDisplay、setNeedsLayout、layoutIfNeed區別
  • MGJRouter的作用

貨拉拉

  • 項目裏面值得認可的部分、RN橋接的一些東西
  • MVVM和MVC
  • 調試奔潰的工具
  • 做了什麼操作讓優化項目
  • get和post、http協議、網絡請求這塊問得比較多
  • 數據傳輸的格式json?xml?等等
  • 後臺返回的數據是多少K的,大文件傳輸怎麼辦
  • 數據庫的一些操作
  • iOS存儲方式
  • TCP/IP協議
  • ARC引用計數、內存管理幾個區域
  • OC的基礎數據類型
  • 說一說多線程、在項目中怎麼用的
  • 單例模式怎樣設計的,有什麼優缺點
  • 觀察者模式、KVO的原理
  • 地圖開發經驗
  • 寫uni-app的架構、serveice層、小程序上線流程
  • 爲什麼要寫博客
  • 以後的發展方向

全網精選 · iOS面試題答案.pdf文集


小米

  • TCP和UDP,三次握手,追問改成兩次會怎樣,線程同步機制
  • 斐波拉契數列
  • 反轉鏈表
  • RN跟原生相比的優劣,組件生命週期,項目基於RN哪個版本開發,雙端適配問題
  • 平常如何學習,性能優化,項目難點在哪
  • 事件傳遞機制和響應機制
  • 什麼時候view不會響應觸摸事件,如何響應view以外的事件
  • 自動釋放池
  • 內存管理機制
  • weak關鍵詞在什麼情況下用,與assgin的區別
  • weak底層原理
  • 什麼時候會報unrecognized selector異常,底層實現原理,消息發送
  • runloop
  • 使用過哪些三方庫
  • 問了些組件化的問題

滴滴

  • 二叉樹搜索的思路
  • 反轉鏈表
  • 項目中遇到的重大問題、如何解決的、解決後心態的變化
  • 組件化有用到哪些?說說你們後臺分發的流程
  • block的循環引用是怎麼產生的?在內部會不會加上__strong?爲什麼
  • block如何修改外部變量
  • runtime消息轉發流程和結構體
  • GCD和NSOperation的利弊
  • 說一下runloop
  • 圖片緩存的原理和圖片移除的原理(主要考察最長時間算法)
  • 你知道的數據持久化的方式
  • 數據庫用的哪些?FMDB、SQLite
  • 在讀寫數據庫的時候使用的是幾個線程
  • 說一下uni-app、這樣設計架構的目的是什麼
  • 單例、代理、觀察者你喜歡用哪個
  • swift的struct和class的區別
  • swift的option是怎麼實現的
  • 做了哪些性能優化和啓動改造
  • 怎麼與前端進行通信的

快手

  • weak的用途和原理。追問:key和value是怎樣對應的?查找時怎樣找到它清理的對象。
  • uitableview是什麼模式實現的?
  • frame和bounds的區別
  • kvo的使用和原理
  • isa指針的說明
  • base64/md5加密/aes/rsa+des加密,在什麼情況下用到了md5加密
    md5是一個非對稱的校驗算法。驗證數據的真實性
  • block的結構和它造成的循環引用
  • 自動化打包
    平臺通過腳本控制 遠程打包 節省人力物力,解決衝突,走測試
    打包時間長怎麼優化:bitcode是否開啓 編譯選項是否選上,模擬器環境去掉
    編譯過程縮短:可執行文件 .o .h ipa包打開會看見,鏈接網絡環境。
  • Autolayout,舉了個栗子排布。uibutton寬度固定,uilabel怎麼排
  • 離屏渲染的原理和例子
  • http傳輸的五層,一個瀏覽器向服務端發送url的過程。追問:解析ip地址的時候發生在哪一層。
  • 三次握手的原理,tcp在哪一層?ip在哪一層
  • 快速排序的複雜度、冒泡排序的複雜度
  • 手寫兩個鏈表合併
  • 手寫字符串反轉

趣拿

  • HTTPS和HTTP的區別
  • HTTPS傳值過程
  • runtime發送消息的流程。給nil對象發送消息會怎樣?
  • 根元類的isa指向,根元類的父類指向
    用runtime做過什麼事情
  • Hook和aop
  • load和initail的調用時機
  • rn模塊開發,反向傳值是怎麼傳的
  • 同時重寫getter和setter方法會怎樣?
  • KVO的原理。追問:如果對這個類使用了KVC,再用反射方法去訪問這個類,它返回的結果是什麼?
  • 靜態庫動態庫
  • 手寫鏈表反轉
  • 怎麼判斷有環
  • 二分查找
  • 斐波拉契
  • 快排

猿題庫

  • oc的動態運行時體現在什麼方面
  • runtime發送消息的流程,forwardTarget方法是做什麼的?
  • kvo的實現過程
  • 要是讓你設計一個通知模式,你會怎麼做?怎麼把方法傳給外面要調用它的類?
  • crash的捕獲原理
  • 兩個透明的view都有button,view1放在view2上面,但是從界面看上去button像是放在一個view中。問此時點擊兩個button會發生什麼事。
  • NSTimer什麼時候會出現循環引用?怎麼解決
  • RN的原理
  • HTTPS和HTTP的區別、五層模型
  • fps的檢測
  • cs的基礎
  • shell和ruby有寫過腳本麼
  • 找出數組中比它左邊都要大比它右邊要小的數放入到新的數組
  • wkwebview比uiwebview的區別

更多:iOS面試文集


此文:面試題收錄來源

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章