runtime 執行時機制 應用

2021-07-08 20:59:43 字數 1664 閱讀 8892

原文: 摘要

在最開始聽到runtime的時候,我是感到恐懼的,多麼高大上的東西啊!!!後來,開始在網上查一些資料,可是就是只有那麼幾篇,看了好久,還不知所云,所以就更加恐懼了!!!!後來經過檢視documents 以及一些國外大牛的blogs,終於對runtime有了更深刻的了解!於是就想寫下這些東西,希望對讀者們有幫助……

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是無法現實的, 不好實現)

@inte***ce pyperson : nsobject 

@property (nonatomic, assign) int age; 

@property (nonatomic, assign) int height; 

@property (nonatomic, copy) nsstring *name; 

@property (nonatomic, assign) int age2; 

@property (nonatomic, assign) int height2; 

@property (nonatomic, assign) int age3; 

@property (nonatomic, assign) int height3; 

@property (nonatomic, assign) int age4; 

@property (nonatomic, assign) int height4;

@end

而pyperson.m實現檔案的內容如下

#import "pyperson.h"

@implementation pyperson

@end

這樣我們可以看到歸檔和解檔的案例其實是runtime寫下的

學習,runtime機制首先要了解下面幾個問題 

1相關的標頭檔案和函式 

1> 標頭檔案

2> 相關應用

3> 相關函式

4.必備常識 

1> ivar : 成員變數 

2> method : 成員方法 

從上面例子中我們看到我們定義的成員變數,如果要是動態建立方法,可以使用method,

runtime 執行時機制

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

runtime 執行時機制

必備常識 1.ivar 成員變數 2.method 成員方法相關應用 1.nscoding 歸檔和解檔,利用runtime遍歷模型物件的所有屬性 2.字典 模型 利用runtime遍歷模型物件的所有屬性,根據屬性名從字典中取出對應的值,設定到模型的屬性上 3.kvo 利用runtime動態產生乙個類...

runtime 執行時機制

runtime 執行時機制 一 runtime是什麼 1 runtime是乙個全動態語言,是基於c語言的庫,裡面包含了很多底層的c語言函式。2 平時編寫的oc 在程式執行過程中,其實最終都是轉成了runtime的c語言 runtime算是oc方法的底層實現,換句話說oc的實現也就是runtime的底...