您的位置:首页 > 移动开发 > IOS开发

iOS MJExtension框架之字典数组转模型数组

2015-01-14 21:05 483 查看
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 延迟加载

- (NSArray *)citySections
{
if (_citySections == nil) {
NSString *path = [[NSBundle mainBundle] pathForResource:@"Cities.plist" ofType:nil];
NSArray *dataArray = [NSArray arrayWithContentsOfFile:path];
NSMutableArray *arrayM = [NSMutableArray arrayWithCapacity:dataArray.count];

for (NSDictionary *dict in dataArray) {
// MJExtension框架里,字典转模型的方法
CitySection *section = [CitySection objectWithKeyValues:dict];
[arrayM addObject:section];
}
_citySections = arrayM;
}

return  _citySections;
}


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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: