iOS 创建模型时自动生成属性
转载 mark666(简书作者), 链接:http://www.jianshu.com/p/63ee533a7705
我们在创建模型的时候,常常要写一大堆恶心的@property(nonatomic, copy) NSString *name;
垃圾代码,遇到这个就恶心的想吐,我就想能不能自动给我生成了,你还别说网上github上就有这种软件,有兴趣的可以去搜一下,但是作为一个程序员不能老想着用别人的东西,所以我就给NSObject
添加一个分类,当传入一个字典会自动生成打印处理,接下来需要做的就是command + c
然后command + v
到自己的模型中,然后采用了李明杰大神的MJExtension.h
这个框架给模型数据数据赋值的方式(也就是运行时的方式),或者大家也可以通过KVC
来赋值,都可以,下面提供生成属性代码的分类
// 自动生成属性声明的代码 + (void)propertyCodeWithDictionary:(NSDictionary *)dict { NSMutableString *strM = [NSMutableString string]; [dict enumerateKeysAndObjectsUsingBlock:^(id _Nonnull key, id _Nonnull obj, BOOL * _Nonnull stop) { NSString *str; NSLog(@"%@",[obj class]); if ([obj isKindOfClass:NSClassFromString(@"__NSCFString")] || [obj isKindOfClass:NSClassFromString(@"NSTaggedPointerString")] || [obj isKindOfClass:NSClassFromString(@"__NSCFConstantString")]) { str = [NSString stringWithFormat:@"@property (nonatomic, copy) NSString *%@;",key]; } if ([obj isKindOfClass:NSClassFromString(@"__NSCFNumber")]) { str = [NSString stringWithFormat:@"@property (nonatomic, assign) int %@;",key]; } if ([obj isKindOfClass:NSClassFromString(@"__NSCFArray")]) { str = [NSString stringWithFormat:@"@property (nonatomic, copy) NSArray *%@;",key]; } if ([obj isKindOfClass:NSClassFromString(@"__NSCFDictionary")]) { str = [NSString stringWithFormat:@"@property (nonatomic, copy) NSDictionary *%@;",key]; } if ([obj isKindOfClass:NSClassFromString(@"__NSCFBoolean")]) { str = [NSString stringWithFormat:@"@property (nonatomic, assign) BOOL %@;",key]; } [strM appendFormat:@"\n%@\n",str]; }]; NSLog(@"%@",strM); }
本文会传一个简易的gitHub的链接,
https://github.com/markdashi/baiduCourse,项目里是有pch文件的,只不过由于原先设置的路径是绝对路径,所以你下载下来之后路径改变了,你重新定向一下pch的文件路径就行了;TAGRGETS(BaiduCourse) ->BuildSettings ->Prefix Header 双击原先的路径,删除,然后把项目中的pch文件拖到白色输入框,重新运行就行了
以上是mark666(简书作者),以此转载记录!
用最好的情绪做最好的自我。开心是一天,不开心也是一天,不如天天开心。活在当下,生活就为你歌唱。