解析数据时,快速查看当前需要创建的数据模型的所有属性,不用每个都写,直接打印粘贴

创建一个NSDictionary类别:

#import <Foundation/Foundation.h>

/**
 根据网络请求返回的字典数据,写对应的模型。当属性多时,用手写很费功夫,可用这个类快速打印出所有的模型属性,直接粘贴即可
 */
@interface NSDictionary (PropertyCode)

//生成需要的属性代码
- (void)getPropertyCode;

@end
#import "NSDictionary+PropertyCode.h"

@implementation NSDictionary (PropertyCode)

//生成需要的属性代码
- (void)getPropertyCode{
    NSMutableString *codes = [NSMutableString string];

    //遍历字典在所有的key一一对应
    [self enumerateKeysAndObjectsUsingBlock:^(id  _Nonnull key, id  _Nonnull obj, BOOL * _Nonnull stop) {
        //key:属性名
        NSString *code;
        if ([obj isKindOfClass:[NSString class]]) {
            code = [NSString stringWithFormat:@"@property (nonatomic ,strong) NSString *%@",key];
        }
        else if ([obj isKindOfClass:NSClassFromString(@"__NSCFBoolean")]){
            code = [NSString stringWithFormat:@"@property (nonatomic ,assign) BOOL %@;",key];
        }
        else if ([obj isKindOfClass:[NSArray class]]) {
            code = [NSString stringWithFormat:@"@property (nonatomic ,strong) NSArray *%@",key];
        }
        else if ([obj isKindOfClass:[NSDictionary class]]) {
            code = [NSString stringWithFormat:@"@property (nonatomic ,strong) NSDictionary *%@",key];
        }
        else if ([obj isKindOfClass:[NSNumber class]]) {
            code = [NSString stringWithFormat:@"@property (nonatomic ,assign) NSInteger *%@",key];
        }

        [codes appendFormat:@"\n%@\n",code];
    }];

    NSLog(@"数据模型属性------\n%@",codes);
}

@end
时间: 2024-10-12 21:00:06

解析数据时,快速查看当前需要创建的数据模型的所有属性,不用每个都写,直接打印粘贴的相关文章

iOS解析数据时Error=3840

1.解析JSon数据格式出错的问题 unescaped control character around character XXXX 和 The data couldn’t be read because it isn’t in the correct format. Error的错误码为3840 出现这种情况时,一般是json数据中的不规范造成的,json数据中也许有转义字符的出现导致了这种情况,如有/t/n/0等出现 数据不太规范解决方法:1.后台修改数据 2.自己项目中判断数据,就拿AF

串口收发数据时字符、十六进制、二进制格式详细区分

在使用串口调试助手时发送和接收数据都是以字节 (Byte) 为单位,并且可以选择字符.十六进制.二进制三种收发格式 ,那么这三种格式究竟怎样区分呢? 首先我们来明确一个概念 :串口收发数据的单位 '' 字节 (Byte) '' ,   1Byte = 8 bits , 串口收发数据格式一般为  1bit起始位(一般为0) + 8bits 数据位(一字节) +1bit校验位(可有可无) +1bit结束位(一般为1) 下面逐一区分三种收发格式: (1) 十六进制:   由于1位十六进制数位宽为 4b

关于度量快速开发平台(创建数据表,业务表)

转眼之间,我已在度量工作了20天,在这20天中,不多不少,有些收获. 前十天,在无尽的学习当中,熟悉快速开放平台,看文档,听同事讲解之后,做练习,十天下来, 对于这个平台已熟悉的差不多了,我不得不说这个平台的强大.一.平台简介 快速开发平台主要分为两种模式.一种是引擎模式,一种是生成源代码模式.在度量快速开发平台中,这两种模式都使用到了,但是生成源代码模式在度量快速开发平台里面得到了不一样的体现,更大幅度的提高了效率. 我们在平台中不管用什么方式构建(在平台中开发我们称之为构建)出来的应用(在平

快速查看SQL Server 中各表的数据量以及占用空间大小

快速查看SQL Server 中各表的数据量以及占用空间大小. CREATE TABLE #T (NAME nvarchar(100),ROWS char(20),reserved varchar(18) ,Data varchar(18) ,index_size varchar(18) ,Unused varchar(18) ) GO INSERT #T EXEC SP_MSFOREACHTABLE 'EXEC sp_spaceused "?"' SELECT * FROM #T O

我的Android进阶之旅------&gt;解决Jackson、Gson解析Json数据时,Json数据中的Key为Java关键字时解析为null的问题

1.问题描述 首先,需要解析的Json数据类似于下面的格式: { ret: 0, msg: "normal return.", news: [ { id: "NEW2016062800875700", from: "腾讯新闻客户端", qqnews_download_url: "http://inews.qq.com/m?refer=openapi_for_xiaotiancai", articletype: "1&

五种情况下会刷新控件状态(刷新所有子FWinControls的显示)——从DFM读取数据时、新增加子控件时、重新创建当前控件的句柄时、设置父控件时、显示状态被改变时

五种情况下会刷新控件状态(刷新控件状态才能刷新所有子FWinControls的显示): 在TWinControls.PaintControls中,对所有FWinControls只是重绘了边框,而没有整个重绘这些FWinControl子控件.那么什么时候才整个重绘全部FWinControls呢?这时候,就不是一个单纯的WM_PAINT来解决控件重绘的问题了,而是这个TWinControl.UpdateShowing函数: procedure TWinControl.UpdateShowing; v

Android混淆编译时,用到gson-2.2.2.jar进行反射解析json数据时,报ClassCastException错误

在我的代码中,我使用方法是: public synchronized <T> T parseJson(String json, Class<T> classOfT) throws Exception{ T target = null; Gson gson = new Gson(); target = gson.fromJson(json, classOfT); return target; } 之后在我的Activity中使用方式是: String addModel = JsonP

c# JD快速搜索工具,2015分析JD搜索报文,模拟请求搜索数据,快速定位宝贝排行位置。

分析JD搜索报文 搜索关键字 女装 第二页,分2次加载. rt=1&stop=1&click=&psort=&page=3http://search.jd.com/Search?keyword=%E5%A5%B3%E8%A3%85&enc=utf-8#keyword=%E5%A5%B3%E8%A3%85&enc=utf-8&qrst=UNEXPAND&as=1&qk=title_key%2C%2C%E5%A5%B3%E8%A3%85&

(转载)Android之三种网络请求解析数据(最佳案例)

[置顶] Android之三种网络请求解析数据(最佳案例) 2016-07-25 18:02 4725人阅读 评论(0) 收藏 举报  分类: Gson.Gson解析(1)  版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 小武:相信大家都用过网络请求解析数据,只是方法不一样而已,但是,逻辑都是差不多的: 一:AsyncTask解析数据 AsyncTask主要用来更新UI线程,比较耗时的操作可以在AsyncTask中使用. AsyncTask是个抽象类,使用时需要继承这个