zoukankan      html  css  js  c++  java
  • 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];

  • 相关阅读:
    MongoDB + Spark: 完整的大数据解决方案
    07对象字面量
    05JavaScript中数组的使用
    04JavaScript中函数也是对象
    03JavaScript中的函数预解析
    02通过arguments实现方法重载
    01函数重名问题
    mxGraph 学习笔记 --mxGraph常用功能代码
    mxGraph学习笔记--设置节点鼠标事件
    mxGraph 学习笔记 --右键菜单
  • 原文地址:https://www.cnblogs.com/angongIT/p/3809130.html
Copyright © 2011-2022 走看看