首页 > 代码库 > Plist数据表格的加载详细事例
Plist数据表格的加载详细事例
Plist数据表格的加载详细事例
1、本次主要加载单一字典的plist数据(app.plist),形式如下
2、加载plist数据,先将数据字典转换成对应的模型,本例子所用的是各个应用的图标,对应的就应该创建一个应用图标的模型huapp(名称自拟)。在头文件中定义所有变量,以及将字典转换成模型数据的两个方法,如下图:
类方法调用对象方法,在对象方法中转换模型
注意:在对象方法中属性的转化还可已使用KVC,一句代码就解决
[self setValuesForKeysWithDictionary:dict];
但是使用KVC,就会将字典中所有的属性一次性转化完,缺少没有用的属性也会报错。
3、在控制器中,首先定义一个数组,用来存备用的信息,使用懒加载来加载数组并转化模型数据;
/ 加载应用信息
@property (nonatomic,strong) NSArray * apps; // 数组存入备用信息
转化的事例代码如下:
- (NSArray *)apps
{
if (_apps == nil)
{
// 获取plist的全路径
NSBundle * bunder = [NSBundle mainBundle];
NSString * path = [bunder pathForResource:@"app.plist" ofType:nil];
// 加载数组
NSArray * dictArray = [NSArray arrayWithContentsOfFile:path];
// 将数组的字典转换成模型对象,存到新的数组中
NSMutableArray * appArray = [NSMutableArray array];
for (NSDictionary * dict in dictArray)
{
// 创建模型对象
huapp * app = [[huapp alloc] initWithDict:dict];
// 添加模型对象到数组中
[appArray addObject:app];
}
_apps = appArray;
}
// 返回数据
return _apps;
}
4、使用数据时,app.icon 就是对应的图标名称,app.name就是对应的应用名称
先取出对应的模型:huapp * app = self.app[i]; // i就是对应位置
UIButton * button= [[UIButton alloc]init];
[buttonset Image:[UIImageimage WithNamed:icon]forState:UIControlStateNormal]
[button setTitle:app.name forState: UIControlStateNormal];