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
  • 相关阅读:
    整合SSH遇到的问题
    学习动态代理实现业务层的事务控制遇到的问题
    docker局域网独立IP外网访问配置
    第23次CSP-D题解法
    Nordic Bluetooth 切换到DFU Mode
    MySQL事务、锁和MVCC
    深拷贝和浅拷贝的区别是什么?
    python是如何进行内存管理的
    数据库的事务
    斐波那契数列
  • 原文地址:https://www.cnblogs.com/jys509/p/5724250.html
Copyright © 2011-2022 走看看