美文网首页iOS开发
iOS自动生成属性代码

iOS自动生成属性代码

作者: 你五哥 | 来源:发表于2018-09-26 17:34 被阅读48次
#import <Foundation/Foundation.h>

@interface NSObject (propertyCode)

/**
 *  自动生成属性申明Code
 *
 *  @param dict 传入的字典
 */
+ (void)propertyCodeWithDictionary:(NSDictionary *)dict;



@end


#import "NSObject+propertyCode.h"
#import <objc/runtime.h>

@implementation NSObject (propertyCode)

// 自动生成属性声明的代码

+ (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) NSInteger %@;",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);
}

  • 写一个NSObject分类自动生成代码
  • 如何使用?
    在控制栏,打印
    po [NSObject propertyCodeWithDictionary:dict[@"list"][0]]
    如下图:


    image.png

接下来只要把控制台的属性直接复制粘贴到model类里面就好了

相关文章

  • iOS自动生成属性代码

    写一个NSObject分类自动生成代码 如何使用?在控制栏,打印po [NSObject propertyCode...

  • 自动生成属性

    // 自动生成属性代码

  • iOS自动生成模型属性代码

    每次声明一个model要根据后台返回写好多属性感觉很蛋疼, 写了一个NSObject的分类分享出来, 只需要传入字...

  • 自动生成属性代码

    拿到网络数据,创建模型定义属性,这些不是很死板,写得很频繁很枯燥的代码吗?为此我写了一个NSObject分类自动生...

  • 自动归档解档

    生成的是OC代码 下载AutoEncodeAndDecode文件, 输入属性名, 自动生成encodeWithCo...

  • 自动生成模型属性代码

    假如一个字典中有很多属性,生成对应的模型要重复写很多@property (nonatomic, strong) ....

  • 使用OC实现Json自动生成Model类文件

    JsonToModel----iOS 使用OC实现Json自动生成Model类文件,不用开发者自己生成类文件写属性...

  • Lombok优缺点

    优点 通过注解自动生成样板代码,提高开发效率 代码简洁,只关注相关属性 新增属性后,无需刻意修改相关方法 缺点 降...

  • 属性

    iOS 属性的使用 属性定义 编译阶段由编译器自动帮我们生成ivar成员变量getter方法,setter方法(简...

  • 探索C#之6.0语法糖剖析

    自动属性默认初始化 使用方法: 编译器生成代码: 从生成代码中可以看出编译器是在实例化构造函数时,初始化属性信息的...

网友评论

    本文标题:iOS自动生成属性代码

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