iOS 开发之 - Plist文件的基本操作

plist文件是一个轻量级的数据库,用于存放一些比较小的数据。下面是对plist的基本操作。

新建一个Plist文件

我这里是新建的一个以整体为Array,item是字典的plist文件。

如图:

一般开发中,如果是要操作plist文件的话。都是要把plist文件放到沙盒(Document) 目录下的

先得到资源目录:

//得到资源目录(新建的plist文件)
- (NSString *)getDataSourcePath:(NSString *) sourceName andType:(NSString *) fileType{
    NSString *path = [[NSBundle mainBundle] pathForResource:sourceName ofType:fileType];
    return path;
}

得到沙盒 (Document)

//得到documents目录
- (NSString *)getDocumentPath:(NSString *) fileName{
    //两种获取document路径的方式
    //    NSString *documents = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    NSString *documents = [paths objectAtIndex:0];
    NSString *path = [documents stringByAppendingPathComponent:fileName];

    return path;
}

重点:

//得到沙盒plist文件

NSString *documentPath = [self getDocumentPath:@"szPlistDemo.plist"];

//向该Document目录添加数据  1 : 直接写的方式,  2 : 将资源文件 复制到 documents目录下

第一种方法:

//    NSError *error;
//    if ([plistPath writeToFile:documentPath atomically:YES encoding:NSUTF8StringEncoding error:&error]) {
//        NSLog(@"file write success . ");
//    }else{
//        NSLog(@"error  = %@",error);
//    }

第二种:

 // 2 :复制到 documents目录下
    NSFileManager *manager = [NSFileManager defaultManager];
    NSError *error;
    if ([manager fileExistsAtPath:documentPath]) {
        NSLog(@"file is exists");
    }else{
        if ([manager copyItemAtPath:plistPath toPath:documentPath error:&error]) {
            NSLog(@"file is not exists, copy success!");
        }else{
            NSLog(@"error = %@",error);
            return;
        }
    }

//像plist中写入数据

//得到资源目录的数据

    NSMutableArray *documentData = [[NSMutableArray alloc] initWithContentsOfFile:documentPath];
    NSLog(@"documentData = %@",documentData);

    NSDictionary *dic = @{@"age":@"25",@"phone_num":@"1328820394"};

    [documentData addObject:dic];  //写入文件    [documentData writeToFile:documentPath atomically:YES];
 

//删除plist文件

这里我用了一个按钮,点击按钮删除plist文件

NSError *error;
    NSFileManager *fileManager = [NSFileManager defaultManager];
    if ([fileManager removeItemAtPath:documentPath error:&error]) {
        NSLog(@"remove success!");
    }else{
        NSLog(@"error = %@",error);
    }

iOS 开发之 - Plist文件的基本操作

时间: 2024-11-08 17:24:28

iOS 开发之 - Plist文件的基本操作的相关文章

iOS开发读取plist文件、iphone中plist文件的

在Xcode中建立一个iOS项目后,会自己产生一个.plist文件,点击时会看见它显示的是类似于excel表格: 但是,如果打开方式选择Source Code,你会看见它其实是一个xml文件. 我们会做一个小例子,在这个例子中我们自己建立一个plist文件并填入数据,然后运行时读取这个plist文件,并将数据填写在界面上. 首先要知道读取plist文件的方法,一般来说,使用代码 NSString *plistPath = [[NSBundle mainBundle] pathForResourc

ios开发入门- plist 文件读写

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

IOS开发 - Info.plist跟pch文件的作用

IOS开发 - Info.plist和pch文件的作用 1. Info.plist和pch文件的作用 2. UIApplication的常见使用 3. AppDelegate的代理方法 4. UIApplication , AppDelegate , UIWindow , UIViewController 的关系 5. IOS程序的完整启动过程 ﹣Info.plist文件﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣我是分割线﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣ *** Bundl

iOS学习之 plist文件的读写

在做iOS开发时,经经常使用到到plist文件,  那plist文件是什么呢? 它全名是:Property List,属性列表文件,它是一种用来存储串行化后的对象的文件.属性列表文件的扩展名为.plist ,因此通常被称为 plist文件.文件是xml格式的. Plist文件通经常使用于储存用户设置,也能够用于存储捆绑的信息 我们创建一个项目来学习plist文件的读写. 1.创建项目Plistdemo 项目创建之后能够找到项目相应的plist文件,打开例如以下图所看到的: 在编辑器中显示相似与表

iOS开发网络篇—文件的上传

iOS开发网络篇—文件的上传 说明:文件上传使用的时POST请求,通常把要上传的数据保存在请求体中.本文介绍如何不借助第三方框架实现iOS开发中得文件上传. 由于过程较为复杂,因此本文只贴出部分关键代码. 主控制器的关键代码: YYViewController.m 1 #import "YYViewController.h" 2 3 #define YYEncode(str) [str dataUsingEncoding:NSUTF8StringEncoding] 4 5 @inter

iOS 开发——生成.a文件

本文参考自 苹果吧的博文 由于iPhone控件的极度匮乏和自定义组件在重用上的限制,在过去的项目中我们积累了大量的"纯代码"组件--因为IB本身的限制,我们无法把这些组件封装为IB组件库(本来我们想通过分发xib文件的方式重用这些组件,但最终发现这根本不可能,苹果的Plug-in编程不支持iPhone). 最终我们想到了静态库.虽然这仍然还是一种比较原始的复用方式,但起码我们可以隐藏组件的源代码. 下面, 我们使用iPhone静态库把自定义组件CheckButton 进行进一步的封装.

iOS开发-网络篇 文件的上传

iOS开发网络篇—文件的上传 iOS开发网络篇—文件的上传 说明:文件上传使用的时POST请求,通常把要上传的数据保存在请求体中.本文介绍如何不借助第三方框架实现iOS开发中得文件上传. 由于过程较为复杂,因此本文只贴出部分关键代码. 主控制器的关键代码: YYViewController.m 1 #import "YYViewController.h" 2 3 #define YYEncode(str) [str dataUsingEncoding:NSUTF8StringEncod

iOS开发——修改指定文件的内存管理状态

今天项目要上线,在Archive时报错:  ARC forbids explicit message send of 'release' 'release' is unavailable: not available in automatic reference counting mode   项目中有几个第三方库用到MRC,在release时报错.在运行时没有用到这个库所以没有报错(没有确定).于是我改了那几个文件为MRC状态,成功Archive,在ARC改为-fobjc-arc,MRC为-f

iOS开发——Swift篇&文件,文件夹操作

文件,文件夹操作 ios开发经常会遇到读文件,写文件等,对文件和文件夹的操作,这时就可以使用NSFileManager,NSFileHandle等类来实现. 下面总结了各种常用的操作: 1,遍历一个目录下的所有文件 1 //假设用户文档下有如下文件和文件夹[test1.txt,fold1/test2.txt] 2 let manager = NSFileManager.defaultManager() 3 let urlForDocument = manager.URLsForDirectory