解析plist文件的时候将字典转换为数据模型更为方便准确
在ViewController中:
if (_dataArray == nil) {
// 初始化数组dataArray
// 1.获得plist的全路径
NSString *path = [[NSBundle mainBundle] pathForResource:@"app.plist" ofType:nil];
// 2.加载数组
NSArray *dictArray = [NSArray arrayWithContentsOfFile:path];
// 3.将dictArray里面的所有字典转成模型对象,放到新的数组中
NSMutableArray *modelArray = [NSMutableArray array];
for (NSDictionary *dict in dictArray) {
// 3.1.创建模型对象
//Model *model = [[Model alloc] initWithDict:dict];下面代替
Model *model = [Model modelWithDict:dict];
// 3.2.添加模型对象到数组中
[modelArray addObject:model];
}
// 4.赋值
_dataArray = modelArray;
}
return _dataArray;
1、建立数据模型Model继承于NSObject
Model.h
/** 名称 */
@property (nonatomic, copy) NSString *name;
/** 图标*/
@property (nonatomic, copy) NSString *icon;
/**通过字典来初始化模型对象
- (instancetype)initWithDict:(NSDictionary *)dict;
//或者自己创建类方法
+ (instancetype)modelWithDict:(NSDictionary *)dict;
Model.m:
- (instancetype)initWithDict:(NSDictionary *)dict{
if (self = [super init]) {
self.name = dict[@"name"];
self.icon = dict[@"icon"];
}
return self;
}
//或者
+ (instancetype)modelWithDict:(NSDictionary *)dict{
// Model *model =[[Model alloc]initWithDict:dict];
// return model;
return [[self alloc] initWithDict:dict];
}