zoukankan      html  css  js  c++  java
  • IOS开发-plist文件的使用-NSBundle使用

    一. 概述

    上文中的图片浏览器的实例,在数据的使用上做的很不好,由于将图片数据写到了代码里,不是一种合理的做法。如果数据经常改,就要经常翻开对应的代码进行修改,造成代码扩展性低,因此,可以考虑将经常变的数据放在文件中进行存储,程序启动后从文件中读取最新的数据。如果要变动数据,直接修改数据文件即可,不用修改代码。而存放数据的文件陈伟plist文件。

    二. Plist文件

    1. 什么是plist的文件?

    plist全称为Property List也称为属性列表文件,它提供了一个方便的方法来存放简单的结构数据,通常为XML格式,Property List存放的数据类型是有限的,包括NSArray、NSDictionary、   NSString、 Boolean、NSNumber、NSData、NSDate。这种属性列表文件的扩展名是plist,因此也成为“Plist文件”.

    注意:plist文件的根数据类型即解析plist文件得到的数据类型,只有两种NSArray或者NSDictionary。

    2.创建plist文件

    3. 创建plist文件中的数据

    在xcode中打开即可点击+号添加数据并可选则数据类型如下图:

    4.利用NSBundle解析plist文件:

    1. 利用NSBundle可以访问某个资源包的内容
    2. 如果访问软件中最主要资源包的内容,就应该利用mainBundle
    NSBundle *bundle = [NSBundle mainBundle];
    3. 利用NSBundle获取文件最主要的路径path,参数为文件名加上扩展名。
     NSString *path = [bundle pathForResource:@"describ" ofType:@"plist"];

    也可以在文件名种带上扩展名,将扩展名参数置为nil

     NSString *path = [bundle pathForResource:@"describ.plist" ofType:nil];
    4. 使用文件中的数组或字典
    // 如果plist文件的根数据为数组
    NSArray *imageArray = [NSArray arrayWithContentsOfFile:path];
    // 如果plist文件的根数据为字典
    NSDictionary *dict =[NSDictionary dictionaryWithContentsOfFile:path];

    三. 使用Plist文件优化图片浏览器程序

    1.将图片的名字和描述以字典数组的方式添加得到创建的plist文件中。创建好的文件如下图

    2. 代码的修改.使用plist文件之后只需要修改上个实例的imageData方法

    - (NSArray *)imageData
    {
        // 懒加载必须先判断是否已经加载了数据
        if(_imageData == nil)
        {
            // 获取plist文件路径
            //NSString *path = [[NSBundle mainBundle] pathForResource:@"imageData" ofType:@"plist"];
            NSString *path = [[NSBundle mainBundle] pathForResource:@"imageData.plist" ofType:nil];
            // 从plist文件解析数组
            _imageData = [NSArray arrayWithContentsOfFile:path];
        }
        return _imageData;
    }

    小结:

    使用plist文件之后是我们的程序更加灵活,将数据和代码分开,需要增删数据时不必再修改代码。

    图片刘浏览器pilist

  • 相关阅读:
    学了N年英语,你学会翻译了吗?——最基本的数据库连接
    混编,还是会犯错~
    call dword prt[eax]
    时间复杂度和空间复杂度1 数据结构和算法03
    call dword prt[eax+5]
    地址反向增长(栈底为大地址,栈顶为小地址)
    OD使用教程3(上) 调试篇03|解密系列
    call dword prt[eax+5]
    时间复杂度和空间复杂度1 数据结构和算法03
    call dword prt[eax]
  • 原文地址:https://www.cnblogs.com/jianghg/p/4481453.html
Copyright © 2011-2022 走看看