zoukankan      html  css  js  c++  java
  • iOS 字典自动生成模型

    在实际开发中,我们经常需要根据字典来建模型。每次都打那么一串代码,想想也是挺恶心的。可以自己给NSDictionary写一个分类,进行属性生成。

    NSDictionary+Property.h

    #import <Foundation/Foundation.h>
    
    @interface NSDictionary (Property)
    
    - (void)createPropertyCode;
    
    @end

    NSDictionary+Property.m

    #import "NSDictionary+Property.h"
    
    @implementation NSDictionary (Property)
    // isKindOfClass:判断是否是当前类或者子类
    // 生成属性代码 => 根据字典中所有key
    - (void)createPropertyCode
    {
        NSMutableString *codes = [NSMutableString string];
        // 遍历字典
        [self enumerateKeysAndObjectsUsingBlock:^(id  _Nonnull key, id  _Nonnull value, BOOL * _Nonnull stop) {
            
            NSString *code;
            if ([value isKindOfClass:[NSString class]]) {
                code = [NSString stringWithFormat:@"@property (nonatomic, strong) NSString *%@;",key];
            } else if ([value isKindOfClass:NSClassFromString(@"__NSCFBoolean")]) {
                code = [NSString stringWithFormat:@"@property (nonatomic, assign) BOOL %@;",key];
            } else if ([value isKindOfClass:[NSNumber class]]) {
                 code = [NSString stringWithFormat:@"@property (nonatomic, assign) NSInteger %@;",key];
            } else if ([value isKindOfClass:[NSArray class]]) {
                 code = [NSString stringWithFormat:@"@property (nonatomic, strong) NSArray *%@;",key];
            } else if ([value isKindOfClass:[NSDictionary class]]) {
                 code = [NSString stringWithFormat:@"@property (nonatomic, strong) NSDictionary *%@;",key];
            }
    
            [codes appendFormat:@"
    %@
    ",code];        
        }];
        NSLog(@"%@",codes);
    }
    
    @end
  • 相关阅读:
    element-ui获取table行数据
    去掉输入框的边框以及在显示获取焦点时的边框+jq日期选择器
    需要ui的小伙伴看过来(这篇博客只有一个链接希望对大家有用)
    vue获取当前对象
    FlashFXP用到的功能
    VS Code做项目的笔记
    单点登陆
    idea中自动生成实体类
    VSCode安装
    数组排序
  • 原文地址:https://www.cnblogs.com/jys509/p/5724250.html
Copyright © 2011-2022 走看看