zoukankan      html  css  js  c++  java
  • 字典转模型

    标签:

    1.下面这样的数组,怎么转成模型

    技术分享 技术分享 技术分享 技术分享

    2.分析

    技术分享

    3.新增模型:城市分组,城市,区,每个模型都有name,抽一个父类

    技术分享

    4.每个模型分别具备的属性

    BaseModel : NSObject    属性 NSString *name

    CitySection : BaseModel   属性 NSArray *cities

    City : BaseModel      属性 NSArray *districts; 属性 BOOL hot;

    District : BaseModel     属性  NSArray *neighborhoods

    5.控制器

    5.1 导入框架 #import "MJExtension.h"

    5.2 控制器的成员属性 : @property (nonatomic,strong) NSArray *citySections;

    5.3 延迟加载

     1 - (NSArray *)citySections
     2 {
     3     if (_citySections == nil) {
     4         NSString *path = [[NSBundle mainBundle] pathForResource:@"Cities.plist" ofType:nil];
     5         NSArray *dataArray = [NSArray arrayWithContentsOfFile:path];
     6         NSMutableArray *arrayM = [NSMutableArray arrayWithCapacity:dataArray.count];
     7         
     8         for (NSDictionary *dict in dataArray) {
     9         // MJExtension框架里,字典转模型的方法
    10            CitySection *section = [CitySection objectWithKeyValues:dict];
    11             [arrayM addObject:section];
    12         }     
    13         _citySections = arrayM;
    14     }
    15 
    16     return  _citySections;
    17 }

    6 在模型类的.m文件中

    6.1导入框架  #import "MJExtension.h"

    6.2 实现方法

    目的是告诉控制器的  objectWithKeyValues: 方法 , cities数组里面装的时city模型

    // 在CitySection.m中
    - (NSDictionary *)objectClassInArray
    {
        return @{ @"cities" : [City class] };
    }
    // 在 City.m中
    - (NSDictionary *)objectClassInArray
    {
        return @{ @"districts" : [District class]};
    }

    注:District.m中,就不用这么干了,因为 District模型的属性 NSArray *neighborhoods 里装的是NSString 

    7 看看转换的结果

    技术分享

    另外, 我的心愿是 世界 和平
  • 相关阅读:
    ASP.NET Core 2.2 基础知识(七) 选项模式
    ASP.NET Core 2.2 基础知识(六) 配置(内含MySql+EF)
    ASP.NET Core 2.2 基础知识(五) 环境
    ASP.NET Core 2.2 基础知识(四) URL重写中间件
    shell 环境变量
    shell 数值运算
    shell IF分支判断语句
    WINDOWS 端口查看
    mybatis-ResultMappingResolver类信息
    shell 基本概述
  • 原文地址:https://www.cnblogs.com/wangbinios/p/5008360.html
Copyright © 2011-2022 走看看