iOS开发:一个快速生成model属性的方法

来源:互联网 发布:媒介数据分析经理招聘 编辑:程序博客网 时间:2024/06/05 05:38

iOS开发中,写数据model是一个提高代码容错的方法,但是考虑到xcode8不支持三方插件,而且苹果官方也不建议使用三方插件,所以手写model的属性是一件很恶心的事情,下面是一个直接打印出字典属性的方法,提高写model效率

+ (void)nslogPropertyWithDic:(id)obj {#if DEBUG    NSDictionary *dic = [NSDictionary new];    if ([obj isKindOfClass:[NSDictionary class]]) {        NSDictionary *tempDic = [(NSDictionary *)obj mutableCopy];        dic = tempDic;    } else if ([obj isKindOfClass:[NSArray class]]) {        NSArray *tempArr = [(NSArray *)obj mutableCopy];        if (tempArr.count > 0) {            dic = tempArr[0];        } else {            NSLog(@"无法解析为model属性,因为数组为空");            return;        }    } else {        NSLog(@"无法解析为model属性,因为并非数组或字典");        return;    }    if (dic.count == 0) {        NSLog(@"无法解析为model属性,因为该字典为空");        return;    }    NSMutableString *strM = [NSMutableString string];    [dic enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {        NSString *className = NSStringFromClass([obj class]) ;        NSLog(@"className:%@/n", className);        if ([className isEqualToString:@"__NSCFString"] | [className isEqualToString:@"__NSCFConstantString"] | [className isEqualToString:@"NSTaggedPointerString"]) {            [strM appendFormat:@"@property (nonatomic, copy) NSString *%@;\n",key];        }else if ([className isEqualToString:@"__NSCFArray"] |                  [className isEqualToString:@"__NSArray0"] |                  [className isEqualToString:@"__NSArrayI"]){            [strM appendFormat:@"@property (nonatomic, strong) NSArray *%@;\n",key];        }else if ([className isEqualToString:@"__NSCFDictionary"]){            [strM appendFormat:@"@property (nonatomic, strong) NSDictionary *%@;\n",key];        }else if ([className isEqualToString:@"__NSCFNumber"]){            [strM appendFormat:@"@property (nonatomic, copy) NSNumber *%@;\n",key];        }else if ([className isEqualToString:@"__NSCFBoolean"]){            [strM appendFormat:@"@property (nonatomic, assign) BOOL   %@;\n",key];        }else if ([className isEqualToString:@"NSDecimalNumber"]){            [strM appendFormat:@"@property (nonatomic, copy) NSString *%@;\n",[NSString stringWithFormat:@"%@",key]];        }        else if ([className isEqualToString:@"NSNull"]){            [strM appendFormat:@"@property (nonatomic, copy) NSString *%@;\n",[NSString stringWithFormat:@"%@",key]];        }else if ([className isEqualToString:@"__NSArrayM"]){            [strM appendFormat:@"@property (nonatomic, strong) NSMutableArray *%@;\n",[NSString stringWithFormat:@"%@",key]];        }    }];    NSLog(@"\n%@\n",strM);#endif}
0 0
原创粉丝点击