OC 的 Runtime 動態獲取物件屬性

2021-08-08 20:37:06 字數 895 閱讀 1646

執行時是 oc 的核心,其特點就是程式在執行的時候,以傳送訊息的形式呼叫方法.

在實際開發中,關於執行時方面的運用點,其實並不多,最常用的也無非是動態獲取物件的屬性.

示例:1.新建乙個繼承自nsobject 的物件,在. h 檔案宣告2個屬性

#import

@inte***ceperson :

nsobject

@property(nonatomic, copy)

nsstring

*name;

@property(nonatomic, assign)

nsinteger

age;

@end

2.新建乙個 nsobject 的類別 

.h 檔案

#import

@inte***ce nsobject (runtime)

+(nsarray*)zyfobjproperties;

@end

.m 檔案

#import "nsobject+runtime.h"

#import

@implementation nsobject (runtime)

+(nsarray *)zyfobjproperties

nslog(@"屬性的個數 %d", count);

free(prolist);

return marr.copy;

}@end

3.匯入新建的類和分類,然後呼叫

nsarray *properties = [person

zyfobjproperties];

nslog(@"%@",properties);

注意, c語言的 copy 後,需要釋放,oc 在執行時是不會對 c 做自動記憶體管理的.

OC 最實用的Runtime 總結

什麼是runtime?runtime 是 oc底層的一套c語言的api 引入 或 編譯器最終都會將oc 轉化為執行時 通過終端命令編譯.m 檔案 clang rewrite objc m可以看到編譯後的 cpp c 檔案 比如我們建立了乙個物件 nsobject alloc init 最終被轉換為幾...

OC的Runtime(執行時)機制的解析

objective c中的runtime是經常被問到的乙個問題,幾乎是面試大公司必問的乙個問題。當然還有一些其他問題也幾乎必問,例如 runloop,block,記憶體管理等。其他的問題如果有機會我會在其他文章中介紹。本篇文章主要介紹runtime。runtime簡稱執行時。就是系統在執行的時候的一...

對RunTime的一點認識

runtime簡稱執行時,是執行時的一些機制,最主要的是訊息機制。因為oc中只有物件能傳送訊息,所以一般以objc開頭。對於c語言,函式在編譯是就會決定呼叫,而oc中不會,oc的函式屬於一種動態呼叫。舉例說明,oc中只宣告乙個方法並不去實現它,然後直接呼叫,編譯奪得時候不會報錯,只有在執行時報錯。類...