标签:
1.简介
plist作为IOS的固化文件,就好比java中properties文件,但是在IOS中plist是可读写的。
本文将介绍自定义静态的plist文件。
2.自定义静态plist文件
右击你的目的文件夹,然后选择【New File....】进行如下选择:
我们创建了一个goods的plist文件,它的默认内容是:
我们预计他是包含一个团购的cell内容,包含上平图片、名称、价格和当前购买人数
他是一个以数组,元素为字典类型,字典中以保存图片、名称、价格和当前购买人数信息:
可以如下定义:
为了简便起见,我们在数组中定义了25个字典元素,其中内容都差不多,只有售出数有差别。
3.懒加载方式读取plist内容
1.定义Model,注意model内的属性名称和plist中的属性名称必须一致,以为后续利用字典进行方便的初始化model
同时建立类方法来初始化model和加载plist
#import <Foundation/Foundation.h> @interface XFGoodModel : NSObject @property (nonatomic,copy) NSString *name; @property (nonatomic,copy) NSString *image; @property (nonatomic,assign) NSInteger price; @property (nonatomic,assign) NSInteger soldNum; - (instancetype)initWithDic:(NSDictionary *)dic; + (instancetype)goodWithDic:(NSDictionary *)dic; + (NSArray *)goodsList; @end
2.实现初始化和加载方法
// // XFGoodModel.m // How to create groupBuy page // // Created by apple on 15/12/15. // Copyright © 2015年 apple. All rights reserved. // #import "XFGoodModel.h" @implementation XFGoodModel - (instancetype)initWithDic:(NSDictionary *)dic { if (self = [super init]) { // 利用字典来进行属性初始化 [self setValuesForKeysWithDictionary:dic]; } return self; } + (instancetype)goodWithDic:(NSDictionary *)dic { return [[self alloc] initWithDic:dic]; } + (NSArray *)goodsList { // 加载plist NSString *path = [[NSBundle mainBundle] pathForResource:@"goods" ofType:@"plist"]; NSArray *dictArray = [NSArray arrayWithContentsOfFile:path]; // 字典转模型 NSMutableArray *tempArray = [NSMutableArray array]; for (NSDictionary *dic in dictArray) { XFGoodModel *good = [XFGoodModel goodWithDic:dic]; [tempArray addObject:good]; } return tempArray; } @end
我们将plist的加载和初始化都封装进了对应的model中。
3. 加载model
一般我们会在controller中将plist中的数据加载以便于呈现,在controller中我们使用懒加载的方式进行plist数据的加载
一般可以这样做:
import "ViewController.h" #import "XFGoodModel.h" @interface ViewController () @property (nonatomic,strong) NSArray *goodsList; @end @implementation ViewController /** * 懒加载plist信息 */ -(NSArray *)goodsList { // 如果未空就进行加载 if(!_goodsList) { _goodsList = [XFGoodModel goodsList]; } return _goodsList; }
测试一下,基本上plist的加载都可以按照此方式进行操作,唯一需要注意的是根据plist的结构定义自己的model并根据plist结构进行循环初始化model。
[How to]如何自定义plist文件和读取plist文件内容
标签:
原文地址:http://www.cnblogs.com/ios123/p/5045901.html