可以利用反射机制动态创建类的实例对象。
常用的方法有:
NSStringFromSelector(SEL selector)//从方法字获取该方法名称
NSSelectorFromString(NSString *selName)//从字符串获取方法子
NSStringFromClass(Class className)//从类名获取字符串
NSClassFromString(NSString *classStr)//从字符串获取类
NSStringFromProtocol(Protocol *proto) //从协议获取字符串
NSProtocolFromString(NSString *namestr)//从字符串获取协议对象
- (BOOL)isKindOfClass:(Class)aClass;// 当前对象是否是这个类或其子类的实例
- (BOOL)isMemberOfClass:(Class)aClass;// 当前对象是否是这个类的实例
- (BOOL)conformsToProtocol:(Protocol *)aProtocol;// 当前对象是否遵守这个协议
- (BOOL)respondsToSelector:(SEL)aSelector;// 当前对象是否实现这个方法
举例:
Class class = NSClassFromString(@"TestViewController");
ViewController *vc = class.new;
[self.navigationController pushViewController:vc animated:YES];