基本的數(shù)據(jù)結構 GCD的類都是struct定義的。 包括所有的父類的數(shù)據(jù)成員,都平鋪重復的寫在一個個的struct中。 提高效率,避免引入繼承機制帶來的代碼執(zhí)行上的延遲. 為...
線程是工廠,operation是管理者,queue是流水線 工廠接到任務,就會創(chuàng)建operation和queue,然后將任務交給operation,operation管理qu...
GCD的優(yōu)勢: GCD 可用于多核的并行運算 GCD 會自動利用更多的 CPU 內核(比如雙核、四核) GCD會自動管理線程的生命周期(創(chuàng)建線程、調度任務、銷毀線程) 程序員...
[TOC] runtime相關問題 面試題出自掘金的一篇文章《阿里、字節(jié):一套高效的iOS面試題》該面試題解答github 地址版本目前已經(jīng)完結,可自行下載pdf進行閱讀,僅...
自旋鎖 & 互斥鎖 自旋鎖:atomic、OSSpinLock、dispatch_semaphore_t臨界區(qū)加鎖,不解鎖一直忙碌不停循環(huán),沒有線程切換的時間開銷,用于執(zhí)行頻...
解決tableView復用錯亂問題 每次都會調UIImageView+WebCache文件中的 [self sd_cancelCurrentImageLoad]; 原理解釋參...
原理: UIScrollView在滾動過程當中,其實是在修改原點坐標。當手指觸摸后, scroll view會暫時攔截觸摸事件,使用一個計時器**。假如在計時器到點后沒有發(fā)生...
自動釋放池原理 Autorelease pool自動釋放池,是OC的一種內存自動回收機制,可以將放入的臨時變量統(tǒng)一回收釋放。自動釋放池銷毀的時,池內所有的對象都會做一次rel...
Aspect切面編程 定義 切面編程:以通過預編譯方式和運行期動態(tài)代理實現(xiàn)在不修改源代碼的情況下給程序動態(tài)統(tǒng)一添加功能的一種技術。 Aspects簡介: Aspects gi...
SDWebImage 組成部分 DownLoader :下載類,負責下載。SDWebImageDownloader優(yōu)化下載過程;SDWebImageDownloaderOpe...
一、臨時變量什么時候釋放? 答:ARC環(huán)境,大括號結束時釋放。MRC環(huán)境,在主線程中,臨時變量會在runloop運行結束時釋放。在非主線程中,臨時變量會在線程退出時釋放。 二...
Swift語言使用var定義變量,但和別的語言不同,Swift里不會自動給變量賦初始值,也就是變量不會有默認值。所以要使用變量之前必須要對其初始化。如果在使用變量之前不進行初...
Aspects簡介: Aspects github地址:https://github.com/steipete/Aspects.git Aspect是一個基于metho sw...
使用MVVM iOS中,我們使用的大部分都是MVC架構。雖然MVC的層次明確,但是由于功能日益的增加、代碼的維護,使得更多的代碼被寫在了Controller中,這樣Contr...
屏幕顯示圖像的原理 從過去的 CRT 顯示器原理說起。CRT 的電子槍按照上面方式,從上到下一行行掃描,掃描完成后顯示器就呈現(xiàn)一幀畫面,隨后電子槍回到初始位置繼續(xù)下一次掃描。...
內存優(yōu)化工具 Instruments的Allocations 這個工具能顯示出應用的實際內存占用,并可以按大小進行排序。我們只要找出那些占用高的,分析其原因,找到相應的解決辦...
參考鏈接: 抖音研發(fā)實踐:基于二進制文件重排的解決方案 APP啟動速度提升超15% 一、原理 1、虛擬內存和物理內存 早期計算機沒有虛擬地址,一旦加載都會全部加載到內存中,而...
一、pre-main階段測量 DYLD_PRINT_STATISTICS = 1 XCODE8 以后才支持的這個命令,并且僅針對iOS 10以上的系統(tǒng)才會打印。 設置好后把程...
App啟動過程 iOS應用的啟動可分為pre-main階段和main( )階段,其中系統(tǒng)做的事情依次是: 無論對于系統(tǒng)的動態(tài)鏈接庫還是對于App本身的可執(zhí)行文件而言,他們都算...