以前一直沒有註意過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);