zoukankan      html  css  js  c++  java
  • ios开发入门- plist 文件读写

    在xcode中创建一个项目 会在supportion files 目录下 看见一个已plist后缀类型的文件,这个文件 是以 key value 存放的键 值对的值。它全名是:Property List,属性列表文件,它是一种用来存储串行化后的对象的文件。属性列表文件的扩展名为.plist ,因此通常被称为 plist文件。plist文件是标准的xml格式的。  我们在日常开发中 可以用它 来存储 一些系统的 的用户信息,系统的配置信息等。

    本章 我们来看看plist 文件是 如何读写的

    在具体操作之前我们来先了解下几个专业的名词 :

    NsBundler 主束 束是一个特定的文件夹类型,其中的内容遵循特定的结构,应用程序喝框架都是束, NsBundler 一个主要的作用是获取添加到项目的Resoureces文件加的资源。

    NSDictionary 字典 就是key-value对的集合。 key是字符串(NSString),value是对象指针。

    启动Xcode 创建一个名为”HelloWord“新项目:界面模板选择为 single view appliction ,不会创建的同学 去看上一章喔  项目信息填写如下图。填写完成后 选择项目保存位置

    在Supporting Files 目录下 创建一个新文件  一个新的Plist 文件

    Supporting files -> new file  -> ios -> Resourece -> Property List 

    如图 :

    创建后命名为 citys 并保存  改文件会出现在 Supporting Files 目录下面

    打开他 并添加 值 如图 :

     该文件 在后面的 源码中有 , 各位童鞋 可以去下载 节省下载时间

    在本章里面 我们 没用到界面 所有数据 在 日志中查看

    下面看代码

       //创建主束  

        NSBundle *bundle=[NSBundle mainBundle];

       //读取plist文件路径
        NSString *path=[bundle pathForResource:@"citys" ofType:@"plist"];

       //读取数据到 NsDictionary字典中 
        NSDictionary *dictionary=[[NSDictionary alloc]initWithContentsOfFile:path];
        NSLog(@"size is %d",[dictionary count]); 
        //NSLog(@"data is %@",dictionary); 
        NSArray *array=[dictionary allKeys];
       

       // 循环输出字典中的  data 数据 
          for(id key in dictionary)
            
        {
            NSArray *arrays=[dictionary objectForKey:key];
            for(int i=0;i<[arrays count];i++){
                NSLog(@"key: %d,value: %@",i,[arrays objectAtIndex:i]);
            }
        }

    把上面的代码添加到 委托器中的- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    方法中

    保存运行 ,各位童鞋 就可以看到 log 控制台中看到 输出的数据了。 如下

    iphone_Sample_PlistReadAndWrite[864:f803] key: 0,value: 广州
    2012-10-09 00:44:10.143 iphone_Sample_PlistReadAndWrite[864:f803] key: 1,value: 深圳
    2012-10-09 00:44:10.143 iphone_Sample_PlistReadAndWrite[864:f803] key: 2,value: 肇庆
    2012-10-09 00:44:10.143 iphone_Sample_PlistReadAndWrite[864:f803] key: 3,value: 佛山
    2012-10-09 00:44:10.143 iphone_Sample_PlistReadAndWrite[864:f803] key: 4,value: 东莞
    2012-10-09 00:44:10.143 iphone_Sample_PlistReadAndWri。。。。。。。 省略

    在我们平时的手机开发中需要保存一些用户数据,操作数据。 plist 可以算是其中的一种方法了,下面我们来看看 plist 文件的写操作。

    程序继续沿用上面的程序

    在 ios中要写入数据 ,那我们的数据 保存在哪儿呢, 是沙盒, 每个程序的数据只能保存在沙盒中, 同样我们的数据 也是保存在沙盒中。 少废话了 ,直接看代码

     //plist write
        //创建一个可变长度的NSMutableDictionary 对象 该对象专门用于存储数据的
        NSMutableDictionary *data=[[NSMutableDictionary alloc]init];
        //添加数据
        [data setObject:@"one" forKey:@"1"];
        [data setObject:@"two" forKey:@"2"];
        [data setObject:@"three" forKey:@"3"];
        [data setObject:@"four" forKey:@"4"];
        //要往沙盒中写数据当然要先取的沙盒目录啦
        NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *plistPaht=[paths objectAtIndex:0];
        

        //取得完整的文件名
        NSString *fileName=[plistPaht stringByAppendingPathComponent:@"textdeom.plist"];
        NSLog(@"fileName is%@",fileName);
        //创建并写入文件
        [data writeToFile:fileName atomically:YES];
        
        //检查是否写入
        NSMutableDictionary *writeData=[[NSMutableDictionary alloc]initWithContentsOfFile:fileName];
        NSLog(@"write data is :%@",writeData);

    上面我们创建了一个NSMutableDictionary 可变长度的字典,并添加元素,然后在写入沙盒中,最后并重新读取出来,  这一章涉及了 沙盒的 内容,大家 先了解这里,后面我们会再讲沙盒的

    上面的代码添加到 委托器中的- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

    保存运行程序 效果如下 :

     运行程序会输出 沙盒的地址 ,和我们程序给 给 plist 写入的 值

    好了 这一章就到这里, 欢迎 各位童鞋 拍砖 。

    代码下载地址 :

    http://blog.51cto.com/ext/down_att.php?aid=36012&code=5477

    转自:http://mahaile.blog.51cto.com/2891586/1011678

  • 相关阅读:
    【校招面试 之 C/C++】第23题 C++ STL(五)之Set
    Cannot create an instance of OLE DB provider “OraOLEDB.Oracle” for linked server "xxxxxxx".
    Redhat Linux安装JDK 1.7
    ORA-10635: Invalid segment or tablespace type
    Symantec Backup Exec 2012 Agent for Linux 卸载
    Symantec Backup Exec 2012 Agent For Linux安装
    You must use the Role Management Tool to install or configure Microsoft .NET Framework 3.5 SP1
    YourSQLDba介绍
    PL/SQL重新编译包无反应
    MS SQL 监控数据/日志文件增长
  • 原文地址:https://www.cnblogs.com/gaohe/p/4549789.html
Copyright © 2011-2022 走看看