MJExtension的一些实用技巧

1、在代码文件中 引入"MJExtension.h":解决属性中的命名和服务端传过来的数据中的key不同的问题

-(NSDcitionrary *)replacedkeyFromPropertyName

{

// ID和mytext对应的是我们头文件中的属性名称

// id 和 text  对应的是我们数据中的key

return@{@"ID": @"id" ,  @"mytext" :@"text"};

}

2、在代码文件中 引入"MJExtension.h" :解决字典中带有数组,数组中又带有字典的转化为问题

#import "类2.h"

-(NSDictionrary *)objectClassInArray

{

return @{@"对应字段key" : [类2 class]};

}

这样我们利用objectWithKeyValues就可以直接转化字典 :XB2 *lei =[XB2objectWithKeyValues:dict];

如果是数组的话,可以用objectArrayWithKeyValuesArray来转化。

iOSJson解析框架之MJExtension使用详解

1. Plist → 模型数组

控制器中引用#import "MJExtension.h"

模型数组 = [模型类名 objectArrayWithFilename:

[[NSBundle mainBundle] pathForResource:@"文件名.plist"ofType:nil]];

2. 对NSLog的优化,解决 调试时,打印模型,只打印出内存地址的问题

使用方法:在模型类的.m文件中,引用#import "MJExtension.h"

在@implementation和@end之间,写上MJLogAllIvrs

3. 对NSCoding的优化,不用再写繁琐的解档和归档方法了

使用方法:在模型类的.m文件中,引用#import "MJExtension.h"

在@implementation和@end之间,写上MJCodingImplementation

4. 字典数组 → 模型数组

4.1 场景一: [字典1,

字典2,

字典3]

如果每个字典都是一个模型,可以用

NSArray *modelArray = [模型类名objectArrayWithKeyValuesArray:字段数组];

4.2场景二:在场景一的基础上,每个字典里面,有数组(假设数组的key值是arrayName),数组里面存放着若干个相同的模型,使用下面的方法

使用方法:

首先在模型类.m文件中,引入#import "MJExtension.h"

然后在@implementation和@end之间写上

+ (NSDictionary *)objectClassInArray

{

return @{@"arrayName" :[模型类名 class]};

}

5.如果 服务器传过来的字典数组里的字典的Key,是OC里的关键字,而使用MJExtention的前提是,模型里的属性名和数组的key一致才行(区分大小写),怎么办?

使用replacedKeyFromPropertyName

使用方法:1.在模型类.m文件引入"MJExtension.h"

2.实现方法

+ (NSDictionary *)replacedKeyFromPropertyName

{

return @{@“非关键字的属性名” :@“数组的key”};

}

6. 单个字典 → 单个模型

+ (instancetype)objectWithKeyValues:(NSDictionary*)keyValues

你可能感兴趣的:(MJExtension的一些实用技巧)