zoukankan      html  css  js  c++  java
  • iOS MJExtension框架之字典数组转模型数组

    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 看看转换的结果

  • 相关阅读:
    字体填充
    通过浏览器直接打开Android应用程序
    IE能够打开网页 可是chrome和火狐打不开网页解决的方法
    openGl学习之加入颜色
    站点变为黑白
    POJ 3169 Layout (图论-差分约束)
    自己定义控件-GifView
    标准C函数库的使用方法
    MyEclipse中jsp的凝视报错解决
    Surrounded Regions
  • 原文地址:https://www.cnblogs.com/oumygade/p/4224861.html
Copyright © 2011-2022 走看看