Objective-C Runtime深入理解(二)

我們前面已經講過一篇runtime 原理,現在這篇文章主要介紹的是runtime是什麼以及怎麼用!希望對讀者有所幫助!

首先,第一個問題, 1》runtime實現的機制是什麼,怎麼用,一般用於幹嘛? 這個問題我就不跟大家繞彎子了,直接告訴大家, runtime是一套比較底層的純C語言API, 屬於1個C語言庫, 包含了很多底層的C語言API。 在我們平時編寫的OC代碼中, 程序運行過程時, 其實最終都是轉成了runtime的C語言代碼, runtime算是OC的幕後工作者 比如說,下面一個創建對象的方法中, 舉例: OC : [[MJPerson alloc] init] runtime : objc_msgSend(objc_msgSend(“MJPerson” , “alloc”), “init”)

第二個問題 runtime 用來幹什麼呢??用在那些地方呢?怎麼用呢? runtime是屬於OC的底層, 可以進行一些非常底層的操作(用OC是無法現實的, 不好實現)

在程序運行過程中, 動態創建一個類(比如KVO的底層實現)
在程序運行過程中, 動態地爲某個類添加屬性\方法, 修改屬性值\方法
遍歷一個類的所有成員變量(屬性)\所有方法 例如:我們需要對一個類的屬性進行歸檔解檔的時候屬性特別的多,這時候,我們就會寫很多對應的代碼,但是如果使用了runtime就可以動態設置! 例如,PYPerson.h的文件如下所示

import

import “PYPerson.h”

import

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章