iOS上的反射用法 – iPhone手機開發技術文章 iPhone軟體開發教學課程

 

以前一直沒有註意過iPhone開發中反射的用法,java C#等也都是有反射的,用起來還是挺方便的,因為目前開發的需要,就想到瞭用反射來完成一下。

 

1.通過類名來創建對象

 

Class testClass=NSClassFromString(@”testClass”);

 

id object=[[testClass alloc] init];

 

2.通過反射的方式,實現該對象的指定函數

 

例如:我想調用object 對象的 setDelegate方法(其實是給屬性賦值,與方法一樣的),用下面的代碼,先判斷該對象是否存在這樣的方法,存在的話,就去執行。

 

if ([object respondsToSelector:@selector(setDelegate:)]) {

[object performSelector:@selector(setDelegate:) withObject:self];

}

 

 

 

3.如何得到類的名稱

 

NSString * className =NSStringFromClass(testClass);

You May Also Like