您的位置:首页 > 职场人生

黑马程序员--字典转模型

2015-06-23 21:05 621 查看
字典转模型

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];

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