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
- iOS开发:一个快速生成model属性的方法
- iOS model类的快速生成
- iOS开发之遍历Model类的属性并赋值
- 用Visual Studio 开发工具 如何快速批量生成属性的 get 和set 方法
- iOS中plist的快速生成方法
- iOS开发之遍历Model类的属性并完善使用Runtime给Model类赋值
- iOS开发之遍历Model类的属性并完善使用Runtime给Model类赋值
- iOS开发之遍历Model类的属性并完善使用Runtime给Model类赋值
- 【iOS开发-25】UIDevice查看系统信息,从一个问题开始如何快速找到自己想要的属性和方法并看懂它
- iOS开发UIDevice查看系统信息,从一个问题开始如何快速找到自己想要的属性和方法并看懂它
- 一个ios生成ipa的简单方法
- ios开发点滴-model属性不能用new开头的问题
- 如何快速的开发一个完整的iOS直播app
- 如何快速的开发一个完整的iOS直播app
- 生成hibernate model方法
- IOS开发中model的简单使用
- 用iOS写一个生成单例的方法
- 快速掌握iOS 开发的技巧和方法
- shell大数据计算——bc巧用
- Pid控制算法—算法原理
- centos6.3
- 二叉树的遍历(递归与非递归)
- 办公软件的选择
- iOS开发:一个快速生成model属性的方法
- maven 上传jar到私服 pom 以及命令的方式
- U盘安装centos 6.3教程(超级详细图解教程)
- mysql配置详解
- 非root搭建lamp & 安装wordpress
- kill 信号
- 第八届河南省赛题最小换乘_NYOJ1238
- Linux下CPU负载
- Rex's BaseActivity