反射的含义:在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为反射机制。
1、通过类名的字符串形式实例化:
Class class = NSClassFromString(@"MyObject");
MyObject *obj = [[class alloc]init];
类名变成字符串:
NSString *string = NSStringFromClass(class);
2、方法反射:
通过方法名的字符串形式实例化对象
SEL selector = NSSelectorFromString(@"doSomething");
[MyObject performSelector:selector];
方法变成字符串:
NSString *str = NSStringFromSelector(selector);
具体用在什么地方呢?下面是一个例子,欢迎参考: