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方法,然后获取了当前的类目内的所有属性,然后重新创建一个字典集合,把获取的对应的键名和键值放进这个字典集合中

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容