NSObject 類的反射,方法反射(十五)

2021-06-28 11:42:18 字數 1228 閱讀 4817

nsobject 類的反射,方法反射用法如下:

#import "ms_nsreflect.h"

#import "ms_person.h"

#import "ms_student.h"

@implementation ms_nsreflect

-(void)shownsreflect

else

//基類 iskindofclass 子類

id person = [[ms_person alloc] init];

if([person iskindofclass:[ms_student class]])

else

//同一類別的例項 ismemberofclass 基類/或其它類 返回(false)

//同一類別的例項 ismemberofclass 該一類別 返回(true)

id student_temp = [[ms_student alloc] init];

if([student_temp ismemberofclass:[ms_person class]])

else

//同一類別的判斷 返回(true)

id person_temp = [[ms_person alloc] init];

if([person_temp ismemberofclass:[ms_person class]])

else

//nsobject 的反射

//類名反射

nsstring *classperson = @"ms_person";

class singlepersonclass = nsclassfromstring(classperson);

ms_person *personreflect = [[singlepersonclass alloc] init];

personreflect.person = @"張三";

[personreflect showperson];

//方法反射 可以反射私有方法

nsstring *methodperson = @"showprivate";

sel singlepersonmethod = nsselectorfromstring(methodperson);

[personreflect performselector:singlepersonmethod];

}@end

NSObject的內省方法

明智地使用內省可以使物件導向的程式更加高效和強壯。它有助於避免錯誤地進行訊息派發 錯誤地假設物件相等 以及類似的問題。下面的部分將介紹如何在 中有效地使用nsobject的內省方法。1 iskindofclass class 檢查物件是否是那個類或者其繼承類例項化的物件 2 ismemberofcl...

python反射例項化 Python的類反射機制

反射就是通過字串的形式,匯入模組 通過字串的形式,去模組尋找指定函式並執行。python有四個內建函式 函式功能 getattr object,attr default 獲取指定字串名稱的物件屬性或方法,如果物件有該屬性則返回屬性值,如果有該方法則返回該方法的記憶體位址,如果都沒有就報錯,如果指定了...

iOS反射 2 類方法的反射

1.nsobject常用方法 類別判斷,也可以說是動態方法 objc view plain copy student stu student alloc init autorelease iskindofclass判斷物件是否屬於某個類 或者 子類 if stu iskindofclass pers...