runtime簡單理解

2021-07-10 17:16:25 字數 873 閱讀 5049

runtime : 執行時機制 

首先必須明白的: 

1.是什麼 

1> runtime是一套比較底層的純c語言api, 屬於1個c語言庫, 包含了很多底層的c語言api 

2> 平時編寫的oc**, 在程式執行過程中, 其實最終都是轉成了runtime的c語言**, runtime算是oc的幕後工作者 

下面這就是乙個例項,(在前面的文章中講到過了!通過編譯成c語言,我們可以看到底層檔案) 

oc : 

[[person alloc] init] 

上面的person物件建立時候, 

runtime : 

objc_msgsend(objc_msgsend(「person」 , 「alloc」), 「init」)

而上面這部分只是明白了最基礎的原理,那麼runtime又有哪些更深的運用呢? 

2.runtime用過麼?又該怎麼用?能用來做什麼? 

我們需要明白的是: 

1> runtime是屬於oc的底層, 可以進行一些非常底層的操作(用oc是無法現實的, 不好實現可以通過runtime是實現)

3.相關的標頭檔案和函式 

1> 標頭檔案

當然,在使用這些東西的時候,我們首先要明白一些東西, 

必備常識 

1> ivar : 成員變數 

2> method : 成員方法

2> runtime相關實際應用

下面貼一段**,是在歸檔解檔的時候使用runtime機制的一段**,這樣可以不用給每乙個屬性賦值,

- (void)encodewithcoder:(nscoder *)encoder

free(ivars);}

runtime簡單使用

1.傳送訊息 建立person物件 person p person alloc init 呼叫物件方法 p eat 本質 讓物件傳送訊息 objc msgsend p,selector eat 呼叫類方法的方式 兩種 第一種通過類名呼叫 person eat 第二種通過類物件呼叫 person cl...

執行時 RunTime 的理解

首先是 什麼是執行時 oc是執行時語言,只有在程式執行時,才會去確定物件的型別,並呼叫類與物件相應的方法.利用runtime機制讓我們可以在程式執行時動態修改類.物件中的所有屬性,方法 執行時是oc訊息機制的平台,例如函式的呼叫,在編譯的時候並不能決定真正呼叫哪個函式,只有在真正執行時的時候才會根據...

RunTime的執行機制簡單使用

runtime 是一套比較底層的純c語言api 它是oc的幕後工作者 我們平時寫的oc 在執行時都會編譯器轉為runtime的c語言 其中最主要的是訊息機制oc的函式呼叫,成為訊息傳送 屬於動態呼叫過程 在編譯的時候並不能決定真正呼叫哪個函式事實證明,在編譯階段,oc可以呼叫任何函式,即使這個函式並...