• 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:@"
    %@
    ",str];
        }];
        
        NSLog(@"%@",strM);
    }

    本文会传一个简易的gitHub的链接,
    https://github.com/markdashi/baiduCourse,项目里是有pch文件的,只不过由于原先设置的路径是绝对路径,所以你下载下来之后路径改变了,你重新定向一下pch的文件路径就行了;TAGRGETS(BaiduCourse) ->BuildSettings ->Prefix Header 双击原先的路径,删除,然后把项目中的pch文件拖到白色输入框,重新运行就行了    

    以上是mark666(简书作者),以此转载记录!

    用最好的情绪做最好的自我。开心是一天,不开心也是一天,不如天天开心。活在当下,生活就为你歌唱。
  • 相关阅读:
    Shell基础:变量类型 & 运算符
    Ant基础入门
    Shell基础:Shell和Mysql交互
    Linux配置邮箱发送(MUTT/MSMTPQ)
    [转载]JMeter源码导入Eclipse
    [转载]Badboy使用教程
    工程目录 Java/Web/Maven
    Maven基础知识和环境搭建
    Github/Eclipse管理Maven项目
    Git分支管理详解
  • 原文地址:https://www.cnblogs.com/lukunlun/p/5924125.html
Copyright © 2020-2023  润新知