由于forward_imp的實現(xiàn)不開源,也涉及到反匯編,存在知識盲區(qū),這篇文章主要是參考別人的博客,原作者博客(http://yulingtianxia.com/blog/2...
由于forward_imp的實現(xiàn)不開源,也涉及到反匯編,存在知識盲區(qū),這篇文章主要是參考別人的博客,原作者博客(http://yulingtianxia.com/blog/2...
objc_msgSend() 前面說過了,我們在寫代碼時候的會調(diào)用objc_msgSend系列的方法,然后再調(diào)用lookUpImpOrForward()方法,其實這只是一個籠...
objc庫中初始化方法如下 其中包含了一些列的初始化,以及image的映射和image的加載。其中 _dyld_objc_notify_register(&map_im...
類初始化的時機 每次調(diào)用類或是對象的方法的時候,會轉(zhuǎn)換成消息發(fā)送,調(diào)用類或?qū)ο蟮姆椒ㄆ鋵嵕褪墙o類或?qū)ο蟀l(fā)送消息,發(fā)送消息是通過objc_megSend()系列的方法,然后會調(diào)...
面向切面編程 AOP面向切面編程在后臺開發(fā)中已經(jīng)是一個老生常談的話題了,如Spring這個框架是面向切面編程實現(xiàn)中尤為具有代表性的一個框架。 關(guān)于AOP的描述AOP_百度百科...
FBKVOController實現(xiàn)原理 在上一篇文章中,有用到FBKVOController去實現(xiàn)MVVM模式。現(xiàn)在來分析一下FBKVOController實現(xiàn)原理。 在我們...
模塊間的對象傳輸 上一片分析了MGJRouter的源碼,不難發(fā)現(xiàn),用MGJRouter這種以URL形式進行模塊間的調(diào)用存在一個天然缺陷: 模塊間傳遞復(fù)雜對象的時候比較困難 因...
category的實現(xiàn)原理 在上一篇文章iOS runtime中提到了class_rw_t這個結(jié)構(gòu),在category中的寫的方法,協(xié)議,屬性等會在程序運行經(jīng)由runtime...
文章目錄 OC中類和對象的本質(zhì) 實例對象,類,元類的關(guān)系 類的屬性 類的方法 消息發(fā)送機制 Runtime api的使用 Runtime 的應(yīng)用 Runtime是什么? Ru...
樹和二叉樹 線性結(jié)構(gòu)是節(jié)點與節(jié)點間是一對一的關(guān)系,而樹中節(jié)點間存在一對多的關(guān)系二叉樹是一種特殊的樹結(jié)構(gòu),二叉樹是最多只有兩個孩子節(jié)點的樹。在現(xiàn)實情況下,有些問題不能用線性結(jié)構(gòu)...
從大類分,排序分為外排序和內(nèi)排序。內(nèi)外排序的區(qū)別在于是否需要多次從內(nèi)存外讀取數(shù)據(jù)進行排序。外排序是要多次從外存讀取數(shù)據(jù)到內(nèi)存。而內(nèi)排序是一次性讀到內(nèi)存中進行排序。從算法的穩(wěn)定...
MGJRouter的使用 對于前面的文章,我提及到了組件化其實就是對項目的拆分和組合。在iOS組件化(一)-利用CocoaPods拆分項目和私有化這篇文章提及到了怎么用Coc...
Cocoapods 執(zhí)行流程 其實利用CocoaPods拆分項目就是根據(jù)業(yè)務(wù)和項目情況,就是把項目分成一個一個子項目,然后通過CocoaPods去將子項目打包成子工程,在主工...