IOSruntime 執行時機制

2022-02-18 18:07:17 字數 909 閱讀 7600

首先必須明白的: 

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);

ios Runtime 執行時機制

1.runtime 叫做執行時機制,其實oc也有執行時機制 訊息機制!我們oc中呼叫方法的時候,其實底層就是發訊息。2.c語言中,函式的呼叫在編譯的時候會決定呼叫哪個函式。3.oc當中的函式,屬於動態呼叫的過程,在編譯的時候並不能決定真正呼叫哪個函式,只有在執行的時候才會決定呼叫函式。那麼,現在就可...

iOS Runtime執行時機制的正確使用姿勢

runtime執行時機制在專案中的實際使用 相信很多人都有過這樣的經歷,就是當我們接手乙個專案時,若要修復某個bug或是檢視某某功能是如何實現的,特別是大專案,再加上對專案的業務邏輯不熟悉 對專案的設計架構不熟悉的情況下,我們往往感到無從下手,或是需要花一定的時間才能找出對應的類。這篇部落格就是為了...

runtime 執行時機制

首先,第乙個問題,1 runtime實現的機制是什麼,怎麼用,一般用於幹嘛?這個問題我就不跟大家繞彎子了,直接告訴大家,runtime是一套比較底層的純c語言api,屬於1個c語言庫,包含了很多底層的c語言api。在我們平時編寫的oc 中,程式執行過程時,其實最終都是轉成了runtime的c語言 r...