iOS开发技巧--如何打印模型键值对

在实际开发中我们会经常遇到需要查看模型实例有没有值,会不会为空的问题,但是当我们在控制台直接用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方法,然后获取了当前的类目内的所有属性,然后重新创建一个字典集合,把获取的对应的键名和键值放进这个字典集合中

你可能感兴趣的:(iOS开发技巧--如何打印模型键值对)