一开始为实现动态执行类主法时,想是否对class对象声明protocal,以表明此class对象可以执行某一个类方法。
在试的过程中发现了下面的实现方法,而且也不会有警告,很奇怪其中的原理。
就是只要引入一个声明了此类方法的.h文件就可以了,其它的都不需要作。
OpenDelegate.h
+(UIViewController*)makeVC;
@end
调用类中:
#import "OpenDelegate.h"
NSString* className = mod.openClassNameServer;
if(className){
Class aClass = NSClassFromString(className);
if(aClass){
if([aClass respondsToSelector:@selector(makeVC)]){
pushedVC = [aClass makeVC];
}
}
}