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
  • 相关阅读:
    U9在SQL Server上的性能优化经验(转述) — 之 分页
    家里买了XBOX 360 Kinect
    哦,真是“不幸”的消息
    U9在SQL Server上的性能优化经验(转述) — 之 包含列索引
    Silverlight 4处理StartWith的BUG
    IIS HTTP重定向配置、参数设置
    【代码保留】怎样添加一个多选搜索引擎
    NSLog 使用
    ObjectiveC(IOS)推荐的属性读写方法
    16进制颜色(html颜色值)字符串转为UIColor
  • 原文地址:https://www.cnblogs.com/linxiu-0925/p/5363262.html
Copyright © 2011-2022 走看看