在实际开发中我们会经常遇到需要查看模型实例有没有值,会不会为空的问题,但是当我们在控制台直接用po命令去打印的时候经常只会打印一个内存地址,而模型中键值对值却看不到,这相当烦躁,解决方法如下
*请在BaseModel里面添加如下代码
重写本个基类类目的description方法
-(NSString *)description
{
NSMutableDictionary *jsonDic = [NSMutableDictionary dictionary];
uint count;
objc_property_t *properties = class_copyPropertyList([self class], &count);
for (int i = 0; i < count; i ++)
{
objc_property_t property = properties[i];
NSString *name = @(property_getName(property));
id value = [self valueForKey:name]?:@"nil";
[jsonDic setObject:value forKey:name];
}
free(properties);
return [NSString stringWithFormat:@"<%@:%p> -- %@",[self mj_keyValues],self,jsonDic];
}
解释一下这段代码,就是重写了父类的description方法,然后获取了当前的类目内的所有属性,然后重新创建一个字典集合,把获取的对应的键名和键值放进这个字典集合中