• 字典转模型


    标签:

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

    技术分享

    另外, 我的心愿是 世界 和平
  • 相关阅读:
    npm、webpack、vue-cli 快速上手版
    jquery 显示和隐藏的三种方式
    jquery好友面板切换
    jquery 事件冒泡
    jquery QQ微博
    C# Thread 参数
    WPF Dispatcher的使用
    UVa 1600 Patrol Robot (BFS最短路 && 略不一样的vis标记)
    HDU 2795 Billboard (线段树单点更新 && 求区间最值位置)
    HDU 1394 Minimum Inversion Number (树状数组 && 规律 && 逆序数)
  • 原文地址:https://www.cnblogs.com/wangbinios/p/5008360.html
Copyright © 2020-2023  润新知