plist文件读取,字典数组转模型数组,即:字典转模型
- (instancetype)initWithDict:(NSDictionary *)dict { self = [super init]; if (self) { [self setValuesForKeysWithDictionary:dict]; } return self; } + (instancetype)heroWithDict:(NSDictionary *)dict { return [[self alloc] initWithDict:dict]; } + (NSArray *)heros { NSArray *array = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"heros.plist" ofType:nil]]; NSMutableArray *arrayM = [NSMutableArray array]; for (NSDictionary *dict in array) { [arrayM addObject:[self heroWithDict:dict]]; } return arrayM; }
plist文件写入,模型数组转字典数组
NSString *path = [[NSBundle mainBundle] pathForResource:@"heros" ofType:@"plist"]; BOOL success = YES; // 归档写入方式,写入的内容不仅仅包括字典数组,上层还有系统针对对象添加的内容,不可取 // success = [NSKeyedArchiver archiveRootObject:self.heros toFile:path]; NSMutableArray *arrayM = [NSMutableArray array]; for (LPKHeros *model in self.heros) { NSDictionary *dict = [model dictionaryWithValuesForKeys:@[@"name", @"icon", @"intro"]]; [arrayM addObject:dict]; } success = [arrayM writeToFile:path atomically:YES]; if (success) { NSLog(@"写入成功!"); }