iOS开发UI篇—ios应用数据存储方式(XML属性列表-plist)
● 沙盒根目录:NSString *home = NSHomeDirectory(); ● Documents:(2种⽅方式)
● 利用沙盒根目录拼接”Documents”字符串
NSString *home = NSHomeDirectory();
NSString *documents = [home stringByAppendingPathComponent:@"Documents"];// 不建议采用,因为新版本的操作系统可能会修改目录名
● 利⽤NSSearchPathForDirectoriesInDomains函数
// NSUserDomainMask 代表从用户文件夹下找
// YES 代表展开路径中的波浪字符“~”
NSArray *array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, NO); // 在iOS中,只有一个目录跟传入的参数匹配,所以这个集合里面只有一个元素
NSString *documents = [array objectAtIndex:0];
● tmp:NSString *tmp = NSTemporaryDirectory();
● Library/Caches:(跟Documents类似的2种⽅方法)
● 利用沙盒根目录拼接”Caches”字符串
● 利⽤NSSearchPathForDirectoriesInDomains函数(将函数的第2个参数改 为:NSCachesDirectory即可)
● Library/Preference:通过NSUserDefaults类存取该目录下的设置信息
相应的代码:
1 #import "NJViewController.h"2 #import "NJPerson.h"3 4 @interface NJViewController ()5 - (IBAction)saveDataBtnClick:(id)sender;6 - (IBAction)readDataBtnClick:(id)sender;7 8 @end9 10 @implementation NJViewController 11 /** 12 * 点击保存按钮 13 */ 14 - (IBAction)saveDataBtnClick:(id)sender { 15 16 // youtube做法 17 // NSString *path = @"/Users/apple/Library/Application Support/iPhone Simulator/7.1/Applications/A6D53E11-DDF0-4392-B2D4-FE77A96888A6/Documents/abc.plist"; 18 19 // 获取应用程序根目录 20 NSString *home = NSHomeDirectory(); 21 22 // 不建议写/ 23 //NSString *path = [home stringByAppendingString:@"/Documents"]; 24 // 不建议Documents写死 25 //NSString *path = [home stringByAppendingPathComponent:@"Documents"]; 26 27 // NSUserDomainMask 在用户目录下查找 28 // YES 代表用户目录的~ 29 // NSDocumentDirectory 查找Documents文件夹 30 // 建议使用如下方法动态获取 31 NSString *doc = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; 32 // 拼接文件路径 33 NSString *path = [doc stringByAppendingPathComponent:@"abc.plist"]; 34 NSLog(@"%@", path); 35 36 37 //NSArray *arr = @[@"lnj", @"28"]; 38 //[arr writeToFile:path atomically:YES]; 39 40 // NSDictionary *dict = @{@"name": @"lnj", @"age":@"28"}; 41 // 调用writeToFile将数据写入文件 42 // [dict writeToFile:path atomically:YES]; 43 44 /* 45 plist只能存储系统自带的一些常规的类, 也就是有writeToFile方法的对象才可以使用plist保存数据 46 字符串/字典/数据/NSNumber/NSData ... 47 */ 48 49 // 自定义的对象不能保存到plist中 50 NJPerson *p = [[NJPerson alloc] init]; 51 p.name =@"lnj"; 52 53 NSDictionary *dict = @{@"person": @"abc"}; 54 [dict writeToFile:path atomically:YES]; 55 } 56 /** 57 * 点击读取按钮 58 */ 59 - (IBAction)readDataBtnClick:(id)sender { 60 NSString *doc = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; 61 62 NSString *path = [doc stringByAppendingPathComponent:@"abc.plist"] 63 ; 64 // 读取数据 65 NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:path]; 66 NSLog(@"%@", dict); 67 } 68 @end
五、属性列表
● 属性列表是一种XML格式的文件,拓展名为plist
● 如果对象是NSString、NSDictionary、NSArray、NSData、 NSNumber等类型,就可以使用writeToFile:atomically:⽅法 直接将对象写到属性列表文件中
转载于:https://www.cnblogs.com/LifeTechnologySupporter/p/9774702.html
iOS开发UI篇—ios应用数据存储方式(XML属性列表-plist)相关推荐
- iOS开发UI篇—IOS开发中Xcode的一些使用技巧
iOS开发UI篇-IOS开发中Xcode的一些使用技巧 一.快捷键的使用 经常用到的快捷键如下: 新建 shift + cmd + n 新建项目 cmd + n 新建文 ...
- iOS开发UI篇—ios应用数据存储方式(偏好设置)
一.简单介绍 很多iOS应用都支持偏好设置,比如保存用户名.密码.字体大小等设置,iOS提供了一套标准的解决方案来为应用加入偏好设置功能 每个应用都有个NSUserDefaults实例,通过它来存取偏 ...
- iOS开发UI篇—iOS开发中三种简单的动画设置
[在ios开发中,动画是廉价的] 一.首尾式动画 代码示例: // beginAnimations表示此后的代码要"参与到"动画中 [UIView beginAnimations: ...
- iOS开发UI篇—UITableview控件使用小结
iOS开发UI篇-UITableview控件使用小结 一.UITableview的使用步骤 UITableview的使用就只有简单的三个步骤: 1.告诉一共有多少组数据 方法:- (NSInteger ...
- iOS开发UI篇—使用嵌套模型完成的一个简单汽车图标展示程序
iOS开发UI篇-使用嵌套模型完成的一个简单汽车图标展示程序 一.plist文件和项目结构图 说明:这是一个嵌套模型的示例 二.代码示例: YYcarsgroup.h文件代码: 1 //2 // YY ...
- iOS开发UI篇—简单介绍静态单元格的使用
iOS开发UI篇-简单介绍静态单元格的使用 一.实现效果与说明 说明:观察上面的展示效果,可以发现整个界面是由一个tableview来展示的,上面的数据都是固定的,且几乎不会改变. 要完成上面的效果, ...
- iOS开发UI篇—实现UITableview控件数据刷新
iOS开发UI篇-实现UITableview控件数据刷新 一.项目文件结构和plist文件 二.实现效果 1.说明:这是一个英雄展示界面,点击选中行,可以修改改行英雄的名称(完成数据刷新的操作). 运 ...
- iOS开发UI篇—UITableviewcell的性能优化和缓存机制
iOS开发UI篇-UITableviewcell的性能问题 一.UITableviewcell的一些介绍 UITableView的每一行都是一个UITableViewCell,通过dataSource ...
- iOS开发UI篇—Date Picker和UITool Bar控件简单介绍
iOS开发UI篇-Date Picker和UITool Bar控件简单介绍 一.Date Picker控件 1.简单介绍: Date Picker显示时间的控件 有默认宽高,不用设置数据源和代理 如何 ...
最新文章
- MVC使用Flash来显示图片
- 半透明父视图,小程序不透明
- 配置文件没有关闭保护模式_配置文件:PS自带的海量滤镜 | 照片调色宝典13
- 编译预处理 -- 带参数的宏定义--【原创】
- 设置mysql整形_mysql 整型字段设计
- 5.11 加权Gram-Schmidt 分解
- 山东理工OJ【2121】数据结构实验之链表六:有序链表的建立(插排法)
- 计算机图形学Web前端笔记-定位并移动到指定坐标点(two.js理论及实现)
- 慕课python第六周测验答案_中国大学慕课答案第八单元测试答案_Python语言程序设计考试测验答案...
- EXCEL数据组合的用法
- 2022年贵州省职业院校技能大赛中职组网络安全赛项规程
- 【性能测试】记一次性能测试
- 535. TinyURL 的加密与解密 : 设计一个 URL 简化系统
- uploadFile+nginx实现上传图片(Windows/Linux均可用)
- [工作交接]--如何优雅地交接工作
- 交换机hybrid模式
- 两分钟速览谷歌2023IO大会:AI军备竞争,全线出击
- node.js毕业设计微信签到小程序(源码+程序+LW+部署)
- 锐捷客户端下虚拟机VMware无法联网的问题
- 日期格式化的时候mm和MM有啥区别;yyyy-MM-dd和yyyy-mm-dd 有啥区别、yyyyMMddHHmmss