iOS面試題(一)

來源:互聯網
上載者:User

標籤:存在   擷取資料   select   key   cti   delegate   store   函數   經典的   

1、MVC跟MVP的區別以及使用的優缺點是什嗎?
  • MVC中V和C之間的關係:C可以控制V的渲染這部分,V起顯示作?用,同時V上發?生的?使用者事件也可以給C來做?些處理理.

  • C和M之間的關係: C可以修改M. M跟V之間的關係: M可以改變V, V讀取M給它提供的資料, 可以展示界 ?面. MVC中, V跟M之間是有依賴關係的. 在使?用MVC的時候, ?網路是從C中發起的, C整體來說承擔的商務邏輯會?較大, 它起到了控制V和M的作?用

  • MVP是面向協議編程,V跟Model之間是完全沒關係的, 他們之間不存在引用和依賴關係. 耦合的操作全部由 Presenter來進?處理理.

  • 網路請求在Model中發起, 把資料傳給P來進?處理, V也是?樣,它要拿資料, 就遵守P提供的協議, 實現P給它提供的協議方法. 擷取資料之後, 就可以進?展示了. 當然它的?些發起操作還是由C來進行. MVP中C?面的代碼很少, 主要邏輯由P來處理理. 由於是?向協議編程, 所以在開發的時候, 完全可以把?絡那層封裝起來,V和C完全沒必要關心?絡那層.

    2、MVC經典的架構中說說有哪些常用的設計模式?
    圖中包含的設計模式:
  • delegate (代理模式)
  • Notification & KVO (觀察者模式)
  • target-action(命令模式)
  • MVC(中介者模式 ,內建了策略模式)

3、怎麼解決iOS打包成功之後,運行在iPhone上會閃退,黑屏的問題?
  • 認證的錯誤,比如用發布認證打App Store的包
  • 裝置並不在開發人員帳號裡
  • 有?些閃退, 像ios10的時候, 要我們加的那個存取權限, 如相機的訪問,就是在plist?檔案?面加上.

    4、說一說OC中字典的實現原理?
  • ?部分語言字典的底層是?個雜湊表
  • 雜湊表(本質就是一個數組)
  • 雜湊函數:md5,雜湊演算法,SHA1

5、iOS中的訊息發送機制和訊息轉寄機制的區別?
  • 訊息發送機制:使用了運行時,通過selector快速去尋找IMP的一個過程
  • ?法在執行的時候, 編譯器會把?法編譯成objc_msgSend()函數
  • 訊息轉寄機制:IMP找不到的時候,通過一些方法做轉寄處理

    6、組件間的通訊,是通過什麼方式來做的,請詳細的解釋一下.
  • 采?路由的方式, 通過路由的方式來實現模組之間業務的調轉, 主工程跟模組之間,不直接引用. 模組與模組之間也不直接引?. 直接引?的時候, 依賴性會更強. 在中間引?的router, 可以降低耦合性。
  • router中採用了target_action以及NSInvocation來進行實現,它們其實是一種命令模式。

    7、SDWebImage是怎麼來清理緩衝的?清理緩衝有兩種?方式:
  • 1.根據時間周期來清理:
    步驟:
    1. 找磁碟緩衝目錄
    1. 使??錄枚舉?, 根據傳入的key擷取快取檔案
    1. 擷取超過7天的檔案
    1. 把超過7天的檔案放到?個數組?面, 統一進行刪除
  • 5.把沒有到期的檔案存起來, 並計算檔案的總?小

  • 2.根據定義的磁碟大小清理
    步驟:
  • 1.如果設定了磁碟的最?儲存. 最?的緩衝大於零, 並且當前的緩衝?小已經?於最大的緩衝?小
  • 2.清除緩衝, 直到緩衝到達最大緩衝的一半.
  • 3.清除的時候, 雖然圖?沒有到期, 它也會根據時間最?的來先刪,

8、SDWebImage是怎麼處理接收的記憶體警告的?
  • ?的是AutoPurgeCache這個類來處理記憶體警告
  • 這個類是繼承?NSCache.
  • 發現記憶體警告, 就直接removeAllObjects全部清理掉
9、SDWebImage中怎麼計算圖片的成本大小?
  • 計算圖片佔用的記憶體?小. 高?例因子寬*?例因?

  • 計算在緩衝中的?小. 在同步的隊列?面, 擷取圖片的路徑,拿到圖片之後,依次進行疊加.

10、SDWebImage中clear和clean有什麼樣的區別?

clean 刪除緩衝,只會刪除一部分,根據到期時間和空間大小
clear 整個目錄全部刪除

答案都是收集而來,如果有什麼錯誤,歡迎指正!

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.