runtime - API

// 1.objc_xxx 系列函數
// 函數名稱 函數作用
objc_getClass 獲取Class對象
objc_getMetaClass 獲取MetaClass對象
objc_allocateClassPair 分配空間,創(chuàng)建類(僅在 創(chuàng)建之后,注冊之前 能夠添加成員變量)
objc_registerClassPair 注冊一個類(注冊后方可使用該類創(chuàng)建對象)
objc_disposeClassPair 注銷某個類
objc_allocateProtocol 開辟空間創(chuàng)建協(xié)議
objc_registerProtocol 注冊一個協(xié)議
objc_constructInstance 構造一個實例對象(ARC下無效)
objc_destructInstance 析構一個實例對象(ARC下無效)
objc_setAssociatedObject 為實例對象關聯對象
objc_getAssociatedObje*ct 獲取實例對象的關聯對象
objc_removeAssociatedObjects 清空實例對象的所有關聯對象

objc_系列函數關注于宏觀使用,如類與協(xié)議的空間分配,注冊,注銷等操作

// 2.class_xxx 系列函數
函數名稱 函數作用
class_addIvar 為類添加實例變量
class_addProperty 為類添加屬性
class_addMethod 為類添加方法
class_addProtocol 為類遵循協(xié)議
class_replaceMethod 替換類某方法的實現
class_getName 獲取類名
class_isMetaClass 判斷是否為元類
objc_getProtocol 獲取某個協(xié)議
objc_copyProtocolList 拷貝在運行時中注冊過的協(xié)議列表
class_getSuperclass 獲取某類的父類
class_setSuperclass 設置某類的父類
class_getProperty 獲取某類的屬性
class_getInstanceVariable 獲取實例變量
class_getClassVariable 獲取類變量
class_getInstanceMethod 獲取實例方法
class_getClassMethod 獲取類方法
class_getMethodImplementation 獲取方法的實現
class_getInstanceSize 獲取類的實例的大小
class_respondsToSelector 判斷類是否實現某方法
class_conformsToProtocol 判斷類是否遵循某協(xié)議
class_createInstance 創(chuàng)建類的實例
class_copyIvarList 拷貝類的實例變量列表
class_copyMethodList 拷貝類的方法列表
class_copyProtocolList 拷貝類遵循的協(xié)議列表
class_copyPropertyList 拷貝類的屬性列表

class_系列函數關注于類的內部,如實例變量,屬性,方法,協(xié)議等相關問題

// 3.object_xxx 系列函數
函數名稱 函數作用
object_copy 對象copy(ARC無效)
object_dispose 對象釋放(ARC無效)
object_getClassName 獲取對象的類名
object_getClass 獲取對象的Class
object_setClass 設置對象的Class
object_getIvar 獲取對象中實例變量的值
object_setIvar 設置對象中實例變量的值
object_getInstanceVariable 獲取對象中實例變量的值 (ARC中無效,使用object_getIvar)
object_setInstanceVariable 設置對象中實例變量的值 (ARC中無效,使用object_setIvar)

objcet_系列函數關注于對象的角度,如實例變量

// 4.method_xxx 系列函數
函數名稱 函數作用
method_getName 獲取方法名
method_getImplementation 獲取方法的實現
method_getTypeEncoding 獲取方法的類型編碼
method_getNumberOfArguments 獲取方法的參數個數
method_copyReturnType 拷貝方法的返回類型
method_getReturnType 獲取方法的返回類型
method_copyArgumentType 拷貝方法的參數類型
method_getArgumentType 獲取方法的參數類型
method_getDescription 獲取方法的描述
method_setImplementation 設置方法的實現
method_exchangeImplementations 替換方法的實現

method_系列函數關注于方法內部,如果方法的參數及返回值類型和方法的實現

// 5.property_xxx 系列函數
函數名稱 函數作用
property_getName 獲取屬性名
property_getAttributes 獲取屬性的特性列表
property_copyAttributeList 拷貝屬性的特性列表
property_copyAttributeValue 拷貝屬性中某特性的值

property_系類函數關注與屬性*內部,如屬性的特性等

// 6.protocol_xxx 系列函數
函數名稱 函數作用
protocol_conformsToProtocol 判斷一個協(xié)議是否遵循另一個協(xié)議
protocol_isEqual 判斷兩個協(xié)議是否一致
protocol_getName 獲取協(xié)議名稱
protocol_copyPropertyList 拷貝協(xié)議的屬性列表
protocol_copyProtocolList 拷貝某協(xié)議所遵循的協(xié)議列表
protocol_copyMethodDescriptionList 拷貝協(xié)議的方法列表
protocol_addProtocol 為一個協(xié)議遵循另一協(xié)議
protocol_addProperty 為協(xié)議添加屬性
protocol_getProperty 獲取協(xié)議中的某個屬性
protocol_addMethodDescription 為協(xié)議添加方法描述
protocol_getMethodDescription 獲取協(xié)議中某方法的描述

// 7.ivar_xxx 系列函數
函數名稱 函數作用
ivar_getName 獲取Ivar名稱
ivar_getTypeEncoding 獲取類型編碼
ivar_getOffset 獲取偏移量

// 8.sel_xxx 系列函數
函數名稱 函數作用
sel_getName 獲取名稱
sel_getUid 注冊方法
sel_registerName 注冊方法
sel_isEqual 判斷方法是否相等

// 9.imp_xxx 系列函數
函數名稱 函數作用
imp_implementationWithBlock 通過代碼塊創(chuàng)建IMP
imp_getBlock 獲取函數指針中的代碼塊
imp_removeBlock 移除IMP中的代碼塊

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末凭需,一起剝皮案震驚了整個濱河市剥懒,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖铆铆,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件建车,死亡現場離奇詭異,居然都是意外死亡裳凸,警方通過查閱死者的電腦和手機贱鄙,發(fā)現死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來姨谷,“玉大人逗宁,你說我怎么就攤上這事∶蜗妫” “怎么了瞎颗?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵件甥,是天一觀的道長。 經常有香客問我哼拔,道長引有,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任倦逐,我火速辦了婚禮轿曙,結果婚禮上,老公的妹妹穿的比我還像新娘僻孝。我一直安慰自己导帝,他們只是感情好,可當我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布穿铆。 她就那樣靜靜地躺著您单,像睡著了一般。 火紅的嫁衣襯著肌膚如雪荞雏。 梳的紋絲不亂的頭發(fā)上虐秦,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天,我揣著相機與錄音凤优,去河邊找鬼悦陋。 笑死,一個胖子當著我的面吹牛筑辨,可吹牛的內容都是我干的俺驶。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼棍辕,長吁一口氣:“原來是場噩夢啊……” “哼暮现!你這毒婦竟也來了?” 一聲冷哼從身側響起楚昭,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤栖袋,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后抚太,有當地人在樹林里發(fā)現了一具尸體塘幅,經...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡姥卢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年螟蝙,在試婚紗的時候發(fā)現自己被綠了文兑。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片恼琼。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖塞栅,靈堂內的尸體忽然破棺而出鸣奔,到底是詐尸還是另有隱情,我是刑警寧澤身冀,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布钝尸,位于F島的核電站,受9級特大地震影響搂根,放射性物質發(fā)生泄漏珍促。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一剩愧、第九天 我趴在偏房一處隱蔽的房頂上張望猪叙。 院中可真熱鬧,春花似錦仁卷、人聲如沸穴翩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽芒帕。三九已至,卻和暖如春丰介,著一層夾襖步出監(jiān)牢的瞬間背蟆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工哮幢, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留带膀,地道東北人。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓橙垢,卻偏偏與公主長得像垛叨,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子柜某,可洞房花燭夜當晚...
    茶點故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內容