zoukankan      html  css  js  c++  java
  • iOS-MJExtension的使用

    MJExtension能做什么?

    1. MJExtension是一套字典和模型之间互相转换的超轻量级框架
    2. MJExtension能完成的功能

       字典(JSON) --> 模型(Model)
       模型(Model) --> 字典(JSON)
       字典数组(JSON Array) --> 模型数组(Model Array)
       模型数组(Model Array) --> 字典数组(JSON Array)

    MJExtension和JSONModel、Mantle等框架的区别

    1. 转换速率:

    最近一次测试表明:MJExtension > JSONModel > Mantle

    各位开发者也可以自行测试

    2.具体用法:

    JSONModel

    要求所有模型类必须继承自JSONModel基类

    Mantle

    要求所有模型类必须继承自MTModel基类

    MJExtension

    不需要你的模型类继承任何特殊基类,毫无污染,毫无侵入性

    如何使用MJExtension

    方法一:cocoapods导入pod 'MJExtension'

    方法二:手动导入

    将MJExtensionExample/MJExtensionExample/MJExtension文件夹中的所有源代码拽入项目中
    导入主头文件:#import "MJExtension.h"
    MJExtension.h
    MJConst.h               
    MJConst.m
    MJFoundation.h               
    MJFoundation.m
    MJIvar.h               
    MJIvar.m
    MJType.h                
    MJType.m
    NSObject+MJCoding.h     
    NSObject+MJCoding.m
    NSObject+MJIvar.h       
    NSObject+MJIvar.m
    NSObject+MJKeyValue.h   
    NSObject+MJKeyValue.m

    最简单的字典转模型: objectWithKeyValues:

    模型中嵌套模型

    .模型中有个数组属性,数组里面又要装着其它模型:在模型内部实现+ (NSDictionary *)objectClassInArray方法

    模型中的属性名和字典中的key不相同(或者需要多级映射)

    将一个字典数组转成模型数组:objectArrayWithKeyValuesArray:

    将一个模型转成字典:

    // 新建模型
      User *user = [[User alloc] init];
    user.name = @"Jack";
    user.icon = @"lufy.png";
    
    Status *status = [[Status alloc] init];
    status.user = user;
    status.text = @"今天的心情不错!";
    
    
    // 将模型转为字典
    NSDictionary *statusDict = status.keyValues;

    将一个模型数组转成字典数组:

    // 新建模型数组
      User *user1 = [[User alloc] init];
    user1.name = @"Jack";
    user1.icon = @"lufy.png";
    
    User *user2 = [[User alloc] init];
    user2.name = @"Rose";
    user2.icon = @"nami.png";
    
    NSArray *userArray = @[user1, user2];
    // 将模型数组转为字典数组
    NSArray *dictArray = [User keyValuesArrayWithObjectArray:userArray];
    NSLog(@"%@", dictArray);
    /*(    
    {        icon = "lufy.png";        name = Jack;    },    
    {        icon = "nami.png";        name = Rose;    }  )*/

    核心代码7:

    [User keyValuesArrayWithObjectArray:userArray]
     链接地址:https://github.com/CoderMJLee/MJExtension
  • 相关阅读:
    关于SQL异地备份的方法(转)
    为VS2008添加OLE/COM 对象查看器
    Microsoft.SqlServer.Smo无法加载SqlServer.Management.Smo.Agent.JobBaseCollection解决方法(转)
    Python3+Pygame实现的射击游戏,很流畅,有音效
    Python项目第1集
    2021年Python3快速入门视频上线了,免费学!!!走起
    亲自动手实现Python+pygame中国象棋游戏
    人机对战版五子棋
    学生信息管理系统(Django入门级)
    Python3+pygame实现的flappy bird游戏,代码完整,还有音乐
  • 原文地址:https://www.cnblogs.com/linxiu-0925/p/5363262.html
Copyright © 2011-2022 走看看