iOS开发——model类模板(过滤null和ID)

   

    说明:model类模板已默认过滤null值,附加特殊情况的关键字ID名的冲突(需手动去掉注释代码)。MyMessageModel为示例的名字。可以自己随便起。

1.自己创建一个继承与NSObject的类,用于当model数据模型用。然后在.h文件中根据接口文档或者json返回数据的添加相应属性。

   并复制以下model类模板代码.h文件的- (instancetype)initWithDictionary:(NSDictionary *)dictionary;方法到自己创建的数据模型类.h中。

2.在自己的数据模型类.m文件中,复制以下model模板类.m中代码到自己创建的类.m中。

model类.h文件

 1 #import <Foundation/Foundation.h>
 2
 3 @interface MyMessageModel : NSObject
 4
 5
 6 // 示例属性名,根据后台接口返回的数据自己copy到此处
 7
 8 @property (nonatomic, strong) NSString *namet;
 9
10 /**
11  *  Init the model with dictionary
12  *
13  *  @param dictionary dictionary
14  *
15  *  @return model
16  */
17 - (instancetype)initWithDictionary:(NSDictionary *)dictionary;
18
19 @end

modell类.m文件

 1 #import "MyMessageModel.h"
 2
 3 @implementation MyMessageModel
 4
 5 - (void)setValue:(id)value forUndefinedKey:(NSString *)key {
 6
 7     /*  [Example] change property id to productID
 8      *
 9      *  if([key isEqualToString:@"id"]) {
10      *
11      *      self.productID = value;
12      *      return;
13      *  }
14      */
15
16     // show undefined key
17 //    NSLog(@"%@.h have undefined key ‘%@‘, the key‘s type is ‘%@‘.", NSStringFromClass([self class]), key, [value class]);
18 }
19
20 - (void)setValue:(id)value forKey:(NSString *)key {
21
22     // ignore null value
23     if ([value isKindOfClass:[NSNull class]]) {
24
25         return;
26     }
27
28     [super setValue:value forKey:key];
29 }
30
31 - (instancetype)initWithDictionary:(NSDictionary *)dictionary {
32
33     if ([dictionary isKindOfClass:[NSDictionary class]]) {
34
35         if (self = [super init]) {
36
37             [self setValuesForKeysWithDictionary:dictionary];
38         }
39     }
40
41     return self;
42 }
43
44 @end

3.对于极少情况下遇到的接口返回json数据带ID的参数和系统ID关键字冲突的解决。

  打开.m中

/* [Example] change property id to productID 

if([key isEqualToString:@"id"])

self.productID = value;

return;  } 

*/   打开这行的注释。将.h中冲突的ID属性名改成productID

4.如何使用model类?     控制器导入模型头文件.h。 在网络请求回来的数据方法中,这样调用  

 MyMessageModel *model = [[MyMessageModel alloc] initWithDictionary:data];

这样既可创建了一个数据模型。

时间: 2024-10-12 08:51:44

iOS开发——model类模板(过滤null和ID)的相关文章

C++网易云课堂开发工程师--类模板

static complex data members static data members member functions static member functions 非静态成员函数:non-static member functions complex c1, c2, c3                                                                             complex c1, c2, c3 cout << c1

iOS开发中 类、对象、实例变量、成员变量、属性变量等区别和关系

类(class):具有相同属性和行为等同一类元素等总称,类是一个抽象的概念. 区分是类还是对象,看它能否继续被细分. 在OC中,类是表示对象类型的结构体,对象通过类来获取自身的各种信息.类由两个部分组成:*.h和*.m文件组成. *.m文件中 implemention部分是类的实现部分,内部包含类中的各种信息,包括各种实例方法或类方法. 类别( category):是为现有的类添加新方法的方式,通常以"类名称+类别名称"来命名. 类别中不能添加新的实例变量.但是可以在类别中添加属性.

iOS 开发常用类

博主姓名:韩俊州 联系方式:QQ: 203423989 此博客创建时间:2015-9-1 一:ASIHTTPRequest 地址:http://allseeing-i.com/ASIHTTPRequest/ ASIHTTPRequest简化了网络通信的一个类,很强大. (void) loadAppDevMag { ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; [request setDelegate:self]; [

ios开发证书,描述文件,bundle ID的关系

http://www.jianshu.com/p/21ebca8cadf6 苹果为了控制应用的开发与发布流程,制定了一套非常复杂的机制.这里面的关键词有:个人开发者账号,企业开发者账号,bundle ID,开发证书,发布证书(又叫"生产证书"),开发描述文件,发布描述文件,推送证书等....初级开发者很难理解这中间的关系和作用.下文就对上述列出的关键内容和它们的关系做个详细介绍. 1. 开发者账号 开发者账号其实就是apple id,只不过要成为开发者,需要去苹果开发者中心激活开发权限

iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)

iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角) 2015-04-05 15:25 2482人阅读 评论(1) 收藏 举报开源框架 图像: 1.图片浏览控件MWPhotoBrowser       实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作.      下载:https://github.com/mwaterfall/MWPhotoBrowser目前比较活跃的社区仍旧是Github,

iOS开发-常用第三方开源框架介绍

iOS开发-常用第三方开源框架介绍 图像: 1.图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作. 下载:https://github.com/mwaterfall/MWPhotoBrowser 目前比较活跃的社区仍旧是Github,除此以外也有一些不错的库散落在Google Code.SourceForge等地方.由于Github社区太过主流,这里主要介绍一下G

(转)iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)

图像: 1.图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作. 下载:https://github.com/mwaterfall/MWPhotoBrowser 目前比较活跃的社区仍旧是Github,除此以外也有一些不错的库散落在Google Code.SourceForge等地方.由于Github社区太过主流,这里主要介绍一下Github里面流行的iOS库. 首先

iOS开发-常用第三方开源框架

特别说明:有些链接是没有用的,如需下载请在github中搜索即可. 图像: 1.图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作. 下载:https://github.com/mwaterfall/MWPhotoBrowser 目前比较活跃的社区仍旧是Github,除此以外也有一些不错的库散落在Google Code.SourceForge等地方.由于Github

iOS开发&gt;学无止境 - 遍历Model类的属性并完善使用Runtime给Model类赋值

在前几天的一篇博客<iOS开发之使用Runtime给Model类赋值>中介绍了如何使用运行时在实体类的基类中添加给实体类的属性赋值的方法,这个方法的前提是字典的Key必须和实体类的Property Name相同,然后通过运行时来生成和执行Setter方法给Model类的属性赋值. 通 过Runtime来给Model类属性赋值的好处是多多的,它便于代码的后期维护,并且提高了开发效率.当你拿到解析后的字典时你不用一个一个的通过 key去把字典的值赋值给相应的Model类的属性,本篇博客中会给出如何