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