if (_appPlist == nil) {
// _appPlist = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"app.plist" ofType:nil]];
NSArray *array =[NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"app.plist" ofType:nil]];
NSMutableArray *arrayM = [[NSMutableArray alloc] init];
for (NSDictionary *dict in array) {
// appInfo *appinfo = [appInfo appInfoWithDict:dict];
// appInfo *appinfo = [[appInfo alloc] initWithDict:dict];
// appinfo.name = dict[@"name"];
// appinfo.icon = dict[@"icon"];
[arrayM addObject:[appInfo appInfoWithDict:dict]];
}
_appPlist = arrayM;
}
return _appPlist;
转模型过程中,appInfo 自定义 initWithDict方法
/**
使用KVC的注意事项
1> plist中的键值名称必须与模型中的属性一致
2> 模型中的属性可以不全部出现在plist中
*/
- (instancetype)initWithDict:(NSDictionary *)dict
{
self = [super init];
if (self) {
// _name = dict[@"name"];
// _icon = dict[@"icon"];
// [self setValue:dict[@"name"] forKeyPath:@"name"];
// [self setValue:dict[@"icon"] forKeyPath:@"icon"];
[self setValuesForKeysWithDictionary:dict]; //KVC
}
return self;
}
+(instancetype)appInfoWithDict:(NSDictionary *)dict
{
return [[self alloc] initWithDict:dict];
}