UI基础-day02-Shopping-01搭建商城基本框架
UI基础-day02-Shopping-02添加一个商品
UI基础-day02-Shopping-03九宫格排序
UI基础-day02-Shopping-04优化添加和删除功能
UI基础-day02-Shopping-05加载数据
UI基础-day02-Shopping-06懒加载-1基础
分析:
- 当多处都需要使用同一个数据源时,该怎么办?
- 当多处都需要修改同一个数据源里面,某一个元素,该怎么办?
Plist文件
-
创建Plist文件(项目中 CMD +N, 找到 Property List)
-
代码方式读写Plist文件.
将数组的内容写入给定路径的文件。
- (BOOL)writeToFile:(NSString *)path
atomically:(BOOL)useAuxiliaryFile;
创建并返回一个包含给定路径指定的文件内容的数组。
+ (NSArray<ObjectType> *)arrayWithContentsOfFile:(NSString *)path;
2.1 读写Plist文件中的数组.
- (void)viewDidLoad {
[super viewDidLoad];
//1.写入数据到plist文件.
NSArray *names = @[@"单肩",@"双肩",@"斜跨包",@"手提包"];
BOOL flag = [names writeToFile:@"/XX/XX.plist" atomically:YES];
if(flag){
NSLog(@"写入成功");
}
//2.从Plist文件中读取出数据
NSArray *nameArray= [NSArray arrayWithContentsOfFile:@"/XX/XX.plist"];
NSLog(@"%@",nameArray);
[self layoutUI];
}
2.2 读写Plist文件的数组+字典
@property (nonatomic, strong) NSArray *shopDataArray;
- (void)viewDidLoad {
[super viewDidLoad];
//1. 写入数据到plist文件
NSArray *shops =@[
@{
@"icon":@"danjianbao",
@"name":@"单肩包"
},
......
@{
@"icon":@"xiekuabao",
@"name":@"斜挎包"
}
];
BOOL judge = [shops writeToFile:@"/XX/XX.plist" atomically:YES];
if(judge){
NSLog(@"写入成功");
}
......
}
//2.读取plist文件数据到shopDataArray
-(NSArray *)shopDataArray{
if (_shopDataArray == nil) {
_shopDataArray = [NSArray arrayWithContentsOfFile:@"/XX/XX.plist"];
}
return _shopDataArray;
}
-
直接在Plist文件中,写入数据. 然后读取'软件安装包'下Plist文件.
-(NSArray *)shopDataArray{
if (_shopDataArray == nil) {
NSString *path = [[NSBundle mainBundle ]pathForResource:@"文件名" ofType:@"plist"];
_shopDataArray = [NSArray arrayWithContentsOfFile:path]; // plist文件数据到shopDataArray
}
return _shopDataArray;
}