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

posted @ 2014-06-25 23:04  在bug中前行  阅读(190)  评论(0编辑  收藏  举报