美文网首页
MJExtension

MJExtension

作者: ZebZheng | 来源:发表于2018-09-30 16:55 被阅读0次

    以下是对MJExtension部分使用方法进行归整

    #pragma mark - 转换为JSON

    /**

    *  转换为JSON Data

    */

    - (NSData *)mj_JSONData;

    /**

    *  转换为字典或者数组

    */

    - (id)mj_JSONObject;         id resultData = [responseObject mj_JSONObject];

    /**

    *  转换为JSON 字符串

    */

    - (NSString *)mj_JSONString; NSString *str=requestModel.mj_JSONString;

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

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

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

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

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

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

    3. Plist → 模型数组

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

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

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

     /**

    *  通过plist来创建一个模型

    *  @param filename 文件名(仅限于mainBundle中的文件)

    *  @return 新建的对象

    */

    + (instancetype)mj_objectWithFilename:(NSString *)filename;

    /**

    *  通过plist来创建一个模型

    *  @param file 文件全路径

    *  @return 新建的对象

    */

    + (instancetype)mj_objectWithFile:(NSString *)file;

    4.1字典 转 模型对象

    HandleModel * model = [HandleModel mj_objectWithKeyValues:jsonObject];

    /**

    *  @param keyValues 字典(可以是NSDictionary、NSData、NSString)

    *  @return 新建的对象

    */

    + (instancetype)mj_objectWithKeyValues:(id)keyValues;

    4.2.模型 转 字典

    /**

    *  将模型转成字典

    *  @return 字典

    */

    - (NSMutableDictionary *)mj_keyValues;

    - (NSMutableDictionary *)mj_keyValuesWithKeys:(NSArray *)keys;

    - (NSMutableDictionary *)mj_keyValuesWithIgnoredKeys:(NSArray *)ignoredKeys;

    5.1字典数组 转  模型数组

    NSArray *arr = [BaseDictModel mj_objectArrayWithKeyValuesArray:data[type]];

    /**

    *  @param keyValuesArray 字典数组(可以是NSDictionary、NSData、NSString)

    *  @return 模型数组

    */

    + (NSMutableArray *)mj_objectArrayWithKeyValuesArray:(id)keyValuesArray;

    5.2 模型数组 转  字典数组

    /**

    *  通过模型数组来创建一个字典数组

    *  @param objectArray 模型数组

    *  @return 字典数组

    */

    + (NSMutableArray *)mj_keyValuesArrayWithObjectArray:(NSArray *)objectArray;

    + (NSMutableArray *)mj_keyValuesArrayWithObjectArray:(NSArray *)objectArray keys:(NSArray *)keys;

    + (NSMutableArray *)mj_keyValuesArrayWithObjectArray:(NSArray *)objectArray ignoredKeys:(NSArray *)ignoredKeys;

    以下方法使用方法:

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

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

    对象属性有数组 需要声明

    @property (nonatomic,strong) NSArray <QuestionHelpInfoModel *> *list;

    //数组声明(旧版)

    + (NSDictionary *)objectClassInArray{

        return @{@"list" : [QuestionHelpInfoModel class]};

    }

    //数组声明(新版)

    + (NSDictionary *)mj_objectClassInArray{

        return @{@"stuarray" : @"Student"};//前边,是属性数组的名字,后边就是类名

    }

    对象属性关键字替换  需要声明

    @property (copy, nonatomic) NSString *tid;

    //替换关键字声明

    + (NSDictionary *)replacedKeyFromPropertyName {

        return @{

                @"tid":@"id",           

                };

    }

    只有这个数组中的属性名才允许进行字典和模型的转换

    + (NSArray *)mj_allowedPropertyNames;

    这个数组中的属性名将会被忽略:不进行字典和模型的转换

    + (NSArray *)mj_ignoredPropertyNames;

    当字典转模型完毕时调用

    - (void)mj_keyValuesDidFinishConvertingToObject;

    当模型转字典完毕时调用

    - (void)mj_objectDidFinishConvertingToKeyValues;

    相关文章

      网友评论

          本文标题:MJExtension

          本文链接:https://www.haomeiwen.com/subject/ujwwoftx.html