美文网首页
还在为手写模型属性浪费时间吗,来一劳永逸吧

还在为手写模型属性浪费时间吗,来一劳永逸吧

作者: 若素Smile | 来源:发表于2017-04-04 23:18 被阅读0次

字典转模型的时候,虽然可以使用第三方框架MJExtension等转换,但是模型的属性还是要自己对着开发文档或者返回的数据打印出来去敲,这部分代码,来回切换,复制粘贴,没有技术含量,但是如果属性多的话,还是有可能有些差错,尽管很容易找出来,但是这种代码还是能偷懒最好啦

下面我介绍一个简单的生成模型属性的方法,就是给NSDictionary添加分类,写一个方法就好,代码如下:

#import "NSDictionary+PropertyCode.h"

@implementation NSDictionary (PropertyCode)

-(void) creatPropertyCode{

    NSMutableString *codes = [NSMutableString string];
    // 遍历字典,根据key生成属性
    [self enumerateKeysAndObjectsUsingBlock:^(id  _Nonnull key, id  _Nonnull value, BOOL * _Nonnull stop) {
        
        NSString *code = nil;
        
        if ([value isKindOfClass:[NSString class]]) {
            code = [NSString stringWithFormat:@"@property (nonatomic,strong) NSString *%@;",key];
        }else if ([value isKindOfClass:NSClassFromString(@"__NSCFBoolean")]) {
            code = [NSString stringWithFormat:@"@property (nonatomic,assign) BOOL %@;",key];
        }else if ([value isKindOfClass:[NSNumber class]]) {
            code = [NSString stringWithFormat:@"@property (nonatomic,assign) NSInteger %@;",key];
        }else if ([value isKindOfClass:[NSArray class]]) {
            code = [NSString stringWithFormat:@"@property (nonatomic,strong) NSArray *%@;",key];
        }else if ([value isKindOfClass:[NSDictionary class]]) {
            code = [NSString stringWithFormat:@"@property (nonatomic,strong) NSDictionary *%@;",key];
        }
        
        [codes appendFormat:@"\n%@\n",code];
    }];
    
    NSLog(@"%@",codes);

}

@end

在分类添加这个方法后就可以让需要转为模型的字典调用该方法,打印出你需要的属性代码了,然后适当修改就好了~

相关文章

网友评论

      本文标题:还在为手写模型属性浪费时间吗,来一劳永逸吧

      本文链接:https://www.haomeiwen.com/subject/rfzzottx.html