NSClassFromString()用于利用一个字符串来创建一个类,例如:
NSString *responseClass =@“MyModel”;
MyModel *model=[[NSClassFromString(responseClass) alloc] init];
NSStringFromClass()是获取与类型名称同名字的字符串,例如:
MyModel *model=[MyModel alloc] init];
NSString *responseClass =NSStringFromClass([model class]);
这里一定要注意NSStringFromClass()中要传的参数为Class类型,不要直接把model传进去。
这两个函数一般用在什么地方呢?
1.用下一些用到反射设计模式的框架上,动态创建类的对象
2.用于一些逻辑的判断。
对于第一种应用,熟悉框架的开发者应该都用过,简单说下第二种
比如我判断返回的model类型是不是NSDictionary类型
Bool bb=[[model class] isKindOfClass:[NSDictionary class]] ;
或者
Bool cc=([model class]==[NSDictionary class]]);
或者
Bool dd=NSStringFromClass([[model class]isEqualToString:@“ NSDictionary”]