前置知識(shí) 首先簡(jiǎn)單分析下在Objective-C中,對(duì)象是什么。下面源碼基于Runtime-709[https://opensource.apple.com/tarballs...
![240](https://upload.jianshu.io/users/upload_avatars/1122433/c352f8247a24.png?imageMogr2/auto-orient/strip|imageView2/1/w/240/h/240)
前置知識(shí) 首先簡(jiǎn)單分析下在Objective-C中,對(duì)象是什么。下面源碼基于Runtime-709[https://opensource.apple.com/tarballs...
贊同,metaclass 使用 class 的設(shè)計(jì),感覺(jué)更絲滑。
iOS面試題:為什么Objective-C中有MetaClass這個(gè)設(shè)計(jì)槐瑞?前置知識(shí) 首先簡(jiǎn)單分析下在Objective-C中,對(duì)象是什么阁苞。下面源碼基于Runtime-709[https://opensource.apple.com/tarballs...
@akzhang6666 暫時(shí)不適合公開哈,抱歉
RTL適配歷程背景 阿拉伯語(yǔ)適配是一個(gè)比較麻煩的事情糟趾,不止在于它文案的適配慌植,更多的是在于其語(yǔ)言習(xí)慣的變化。由從左到右(LeftToRight)的布局習(xí)慣變?yōu)榱藦挠蚁蜃?RightToLef...
前言 OOM全稱 Out Of Memory义郑,指的是因?yàn)閮?nèi)存使用過(guò)多而導(dǎo)致的 APP 閃退蝶柿。其實(shí)這本身是一種操作系統(tǒng)管理內(nèi)存的機(jī)制。因?yàn)槭謾C(jī)的內(nèi)存是有限的非驮,不可能無(wú)限制的使用...
背景 block的問(wèn)題算是老生常談了蜻展,本以為對(duì)block很熟悉了喉誊,但是前幾天跟同事聊到幾個(gè)block的很有意思的點(diǎn)邀摆,一開始還真的感覺(jué)一臉懵逼。想了很久才想出來(lái)自以為能解釋的原...
AVFoundation的一本書伍茄,你去京東搜索AVFoundation就能找到
AVFoundation(二):核心AVAssetAVFoundation是一個(gè)對(duì)多媒體操作的庫(kù)栋盹。多媒體一般以文件或者流的形式存在,顯而易見敷矫,直接對(duì)多媒體進(jìn)行操作并不是一件愉快的事例获,這需要我們了解很多底層多媒體方面的知識(shí)。A...
從效率上來(lái)說(shuō)曹仗,在+load 和+initialize里執(zhí)行同樣的代碼榨汤,效率是一樣的,即使有差距怎茫,也不會(huì)差距太大收壕。
但所有的+load 方法都在啟動(dòng)的時(shí)候調(diào)用,方法多了就會(huì)嚴(yán)重影響啟動(dòng)速度了轨蛤。就說(shuō)我們項(xiàng)目中蜜宪,有200個(gè)左右+load方法,一共耗時(shí)大概1s 左右祥山,這塊就會(huì)嚴(yán)重影響到用戶感知了圃验。
而+initialize方法是在對(duì)應(yīng) Class 第一次使用的時(shí)候調(diào)用,這是一個(gè)懶加載的方法缝呕,理想情況下澳窑,這200個(gè)+load方法都使用+initialize來(lái)代替斧散,將耗時(shí)分?jǐn)偟接脩羰褂眠^(guò)程中,每個(gè)方法平均耗時(shí)只有5ms摊聋,用戶完全可以無(wú)感知颅湘。
WWDC之優(yōu)化App啟動(dòng)速度前言 在WWDC 2016上首次提到了關(guān)于App應(yīng)用啟動(dòng)速度優(yōu)化的話題:Session 406 Optimizing App Startup Time .該Session上A...
背景 iOS的啟動(dòng)過(guò)程一直比較神秘薪夕,這方面的資料也不是太多脚草,大多數(shù)的資料都來(lái)自2016年WWDC的一篇視頻,本文的大部分內(nèi)容來(lái)自于視頻原献,算是視頻的一個(gè)歸納總結(jié)再加上自己的一點(diǎn)...
atomic后setter和getter是安全的
談nonatomic非線程安全問(wèn)題背景 由于我對(duì)SDWebImage這塊比較熟悉馏慨,并且基于SDWebImage封裝了一層對(duì)業(yè)務(wù)更友好的HTSWebImage庫(kù)。所以一直以來(lái)SDWebImage的相關(guān)Crash...
公司內(nèi)部的庫(kù)姑隅,跟業(yè)務(wù)比較耦合写隶,暫時(shí)沒(méi)法開源
談nonatomic非線程安全問(wèn)題背景 由于我對(duì)SDWebImage這塊比較熟悉,并且基于SDWebImage封裝了一層對(duì)業(yè)務(wù)更友好的HTSWebImage庫(kù)讲仰。所以一直以來(lái)SDWebImage的相關(guān)Crash...
這里應(yīng)該是等待sync自己的block執(zhí)行完成之后慕趴,sync就可以繼續(xù)往下執(zhí)行了
小笨狼漫談多線程:GCD(一)多線程是程序開發(fā)中非常基礎(chǔ)的一個(gè)概念鄙陡,大家在開發(fā)過(guò)程中應(yīng)該或多或少用過(guò)相關(guān)的東西冕房。同時(shí)這恰恰又是一個(gè)比較棘手的概念,一切跟多線程掛鉤的東西都會(huì)變得復(fù)雜趁矾。如果使用過(guò)程中對(duì)多線程...
getter和setter是線程安全的耙册。真正對(duì)象的使用又是另一回事了
談nonatomic非線程安全問(wèn)題背景 由于我對(duì)SDWebImage這塊比較熟悉,并且基于SDWebImage封裝了一層對(duì)業(yè)務(wù)更友好的HTSWebImage庫(kù)毫捣。所以一直以來(lái)SDWebImage的相關(guān)Crash...
@zhiyiLiu 這是卓立提的pr详拙,還沒(méi)有合進(jìn)去。crash的原因也是他發(fā)現(xiàn)的培漏,我只是借花獻(xiàn)佛溪厘。在沒(méi)有點(diǎn)破之前,crash的原因真是很難想到
談nonatomic非線程安全問(wèn)題背景 由于我對(duì)SDWebImage這塊比較熟悉牌柄,并且基于SDWebImage封裝了一層對(duì)業(yè)務(wù)更友好的HTSWebImage庫(kù)畸悬。所以一直以來(lái)SDWebImage的相關(guān)Crash...
@大灰灰iOS 各種鎖性能應(yīng)該有不少人做過(guò)對(duì)比了,你可以搜一下
談nonatomic非線程安全問(wèn)題背景 由于我對(duì)SDWebImage這塊比較熟悉,并且基于SDWebImage封裝了一層對(duì)業(yè)務(wù)更友好的HTSWebImage庫(kù)蹋宦。所以一直以來(lái)SDWebImage的相關(guān)Crash...