• 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

  • 相关阅读:
    XIX Open Cup, Grand Prix of China【杂题】
    开发自己的composer包
    IOS微信禁用分享跳转页面返回BUG修复
    Pytest Fixture(一)
    Python使用requests和requests_toolbelt上传文件
    Pytest之参数化
    Pytest Fixture(三)
    Pytest 多进程并发执行
    Pytest Fixture(二)
    20212923 202120222 《网络攻防实践》第二次作业
  • 原文地址:https://www.cnblogs.com/gaohe/p/4549789.html
Copyright © 2020-2023  润新知