由《大話設(shè)計(jì)模式 - 工廠模式》的OC和部分Swift的語(yǔ)言轉(zhuǎn)義 工廠模式 繼上一篇《代理模式》 工廠模式浦旱, 定義一個(gè)用于創(chuàng)建對(duì)象的接口责语, 讓子類決定實(shí)例化哪一個(gè)類宠页。 工廠方...
![240](https://cdn2.jianshu.io/assets/default_avatar/14-0651acff782e7a18653d7530d6b27661.jpg?imageMogr2/auto-orient/strip|imageView2/1/w/240/h/240)
由《大話設(shè)計(jì)模式 - 策略模式》的OC和部分Swift的語(yǔ)言轉(zhuǎn)義 策略模式 繼上一篇《簡(jiǎn)單工廠模式》 策略模式,定義了算法家族趾徽,分別封裝起來续滋, 讓他們之間可以相互替換, 此模...
1孵奶、什么是isa指針 概念: Every object has an isa instance variable that identifies the object's c...
上篇文章講到了什么是isa指針以及KVO的底層實(shí)現(xiàn)疲酌,如果對(duì)KVO和isa指針不熟悉的需要先看看這篇文章。本篇文章主要是實(shí)現(xiàn)含有Block的KVO方法了袁。先上代碼 1朗恳、 KVO的...
在iOS之初: 我們?yōu)檩敵隹谕瑫r(shí)聲明了屬性和底層實(shí)例變量粥诫,那時(shí),屬性是oc語(yǔ)言的一個(gè)新的機(jī)制崭庸,并且要求你必須聲明與之對(duì)應(yīng)的實(shí)例變量怀浆,例如:注意:(這個(gè)是以前的用法)@inte...
摘要:這篇文章首先介紹runtime原理灌诅,包括類,超類含末,元類猜拾,super_class,isa佣盒,對(duì)象挎袜,方法,SEL肥惭,IMP等概念盯仪,同時(shí)分別介紹與這些概念有關(guān)的API。接著介紹方...
對(duì)于不同場(chǎng)景,系統(tǒng)提供的有不同的內(nèi)存管理方案牵囤,大致有如下三種: TaggedPointer (對(duì)于一些小對(duì)象爸黄,比如說NSNumber等采用此種方案) NONPOINTER_I...
+load 方法是類級(jí)方法,對(duì)比alloc等對(duì)象級(jí)方法炕贵,在 rumtime 中是個(gè)特殊的存在: 特點(diǎn)1:+load 由 rumtime 自動(dòng)調(diào)用 與initialize不同梆奈,...
has updated for iOS 13 項(xiàng)目中的頁(yè)面(webview)分成兩種,一種是比較簡(jiǎn)單的称开,對(duì)于這種頁(yè)面亩钟,瀏覽完畢后點(diǎn)返回,就是真的返回鳖轰,退到上一層清酥;另一種是復(fù)雜...
轉(zhuǎn)自: iOS程序中的內(nèi)存分配 棧區(qū)堆區(qū)全局區(qū)在計(jì)算機(jī)系統(tǒng)中,運(yùn)行的應(yīng)用程序的數(shù)據(jù)都是保存在內(nèi)存中的脆霎,不同類型的數(shù)據(jù)总处,保存的內(nèi)存區(qū)域不同。 一睛蛛、內(nèi)存分區(qū) 1 棧區(qū)(stack...
iOS Method Swizzle 代碼 平常我們用的方法都是method_exchangeImplementations,其實(shí)這種用法是錯(cuò)誤的客冈,我們正確的替換方法應(yīng)該上面...
ObjC的runtime只能在Mac OS下才能編譯, 代碼都是在x86_64架構(gòu)下運(yùn)行场仲,iOS上是在arm64, armv7s, armv7架構(gòu)下運(yùn)行 遇到的問題 最近在做...