NSClassFromString的好处是:
1 弱化连接,因此并不会把没有的Framework也link到程序中。
2 不需要使用import,因为类是动态加载的,只要存在就可以加载。因此如果你的framework中没有某个类的头文件定义,而你确信这个类是可以用的,那么也可以用这种方法。
id Obj = [[NSClassFromString(@"className") alloc] init];
这种要求你的程序中必须有className这个类,如果没有的话会返回空对象,不会报错
所以这种可以配合协议进行开发,进行解耦
id Obj = [[className alloc] init];
这种显式的写法可以清晰的获取className的各种属性和方法,但是如果你的程序中没有className类的话会报错。
网友评论