IOS第13天(2,私人通讯录,plist存储,偏好设置,归档)
***************plist存储
- // 当点点击保存的时候调用 //保存
- - (IBAction)save:(id)sender {
- // 获取沙盒的根路径
- // NSString *home = NSHomeDirectory();
- // 拼接Documents路径
- // NSString *docPath = [home stringByAppendingString:@"/Documents"];
- //NSString *docPath = [home stringByAppendingPathComponent:@"Documents"];
- /**
- * NSDocumentDirectory : 查找Documents文件夹
- NSUserDomainMask : 在用户的应用程序下查找
- YES 把路径展开 NO 当前应用的根路径 == ~
- NO ~/Documents
- */
- NSString *docPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[];
- NSLog(@"%@",docPath);
- // 拼接文件路径
- NSString *filePath = [docPath stringByAppendingPathComponent:@"data.plist"];
- // 只有具备writeToFile:的对象才能使用plist存储,NSArray
- NSArray *array = @[@,@,@""];
- [array writeToFile:filePath atomically:YES];
- //NSLog(@"%@",docPath);
- }
- //当点击读取的时候调用 读取
- - (IBAction)read:(id)sender {
- NSString *docPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[];
- NSLog(@"%@",docPath);
- // 拼接文件路径
- NSString *filePath = [docPath stringByAppendingPathComponent:@"data.plist"];
- NSArray *data = [NSArray arrayWithContentsOfFile:filePath];
- NSLog(@"%@",data);
- }
********篇好设置
- // 保存
- - (IBAction)save:(id)sender {
- // [NSUserDefaults standardUserDefaults]可以直接操作偏好设置文件夹
- NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
- // 自动帮我们生成一个plist文件存放在偏好设置的文件夹
- [defaults setObject:@"hm" forKey:@"account"];
- // 同步:把内存中的数据和沙盒同步
- [defaults synchronize];
- }
- //读取
- - (IBAction)read:(id)sender {
- // [NSUserDefaults standardUserDefaults]可以直接操作偏好设置文件夹
- NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
- NSLog(@"%@",[defaults objectForKey:@"account"]);
- // NSDictionary *dict = @{@"account":@"hm"};
- //
- // dict writeToFile:<#(NSString *)#> atomically:<#(BOOL)#>
- }
***************对象归档
******persion.m
- #import "HMPerson.h"
- @implementation HMPerson
- // 在对象归档的时候调用
- // 哪些属性需要归档
- // 这些属性怎么归档
- - (void)encodeWithCoder:(NSCoder *)aCoder
- {
- [aCoder encodeInt:_age forKey:@"age"];
- }
- // 在对象解档的时候调用
- // 哪些属性需要解档
- // 这些属性怎么解档
- - (id)initWithCoder:(NSCoder *)aDecoder
- {
- // 当父类实现了NSCoding,就能调用 [super initWithCoder]
- if (self = [super init]) {
- _age = [aDecoder decodeIntForKey:@"age"];
- }
- return self;
- }
- @end
****归档的保存和读取
- //保存
- @implementation HMViewController
- - (IBAction)save:(id)sender {
- HMPerson *person = [HMPerson new];
- person.age = ;
- NSString *docPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[];
- // 拼接文件路径
- NSString *filePath = [docPath stringByAppendingPathComponent:@"person.data"];
- [NSKeyedArchiver archiveRootObject:person toFile:filePath];
- }
- //读取
- - (IBAction)read:(id)sender {
- NSString *docPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[];
- // 拼接文件路径
- NSString *filePath = [docPath stringByAppendingPathComponent:@"person.data"];
- HMPerson *p = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath];
- NSLog(@"%d",p.age);
- }
IOS第13天(2,私人通讯录,plist存储,偏好设置,归档)的更多相关文章
- IOS第13天(3,私人通讯录,登陆状态数据存储,数据缓存, cell的滑动删除,进入编辑模式,单个位置刷新 )
*****联系人的界面的优化 HMContactsTableViewController.m #import "HMContactsTableViewController.h" # ...
- IOS第13天(1,私人通讯录,登陆功能,界面的跳转传值,自定义cell,编辑界面)
******HMLoginViewController 登陆的界面 #import "HMLoginViewController.h" #import "MBProgre ...
- 持久化存储——偏好设置,plist,归档---学习笔记二
//一. 本地持久化 //1.沙盒 //1.1 应用程序包:存放的是应用程序的源文件,包括资源文件和可执行文件 NSString *path = [[NSBundle mainBundle]bundl ...
- 数据存储之plist、偏好设置
// 偏好设置--------------------------------- // 存储基本类型数据 NSUserDefaults *defaults = [NSUserDefaults stan ...
- 1211笔记关于//modal//更改窗口的根控制器//数据存取//Plist属性列表//-“沙盒机制”//plis属性列表//偏好设置//归档普通对象//联系人数据存储//协议与回调函数
一.利用Modal形式展示控制器 1.如何展示// vc就是要展示的新控制器[self presentViewController:vc animated:YES completion:^{ N ...
- ios应用数据存储方式(偏好设置)-转
一.简单介绍 1.很多ios应用都支持偏好设置,比如保存用户名,密码,字体大小等设置,ios提供了一套标准的解决方案来为应用加入偏好设置功能. 2.每个应用都有个NSUserDefaults实例,通过 ...
- [iOS基础控件 - 6.11.3] 私人通讯录Demo 控制器的数据传递、存储
A.需求 1.搭建一个"私人通讯录"Demo 2.模拟登陆界面 账号 密码 记住密码开关 自动登陆开关 登陆按钮 3.退出注销 4.增删改查 5.恢复数据(取消修改) 这个代码 ...
- IOS学习之-私人通讯录
通过一段时间IOS的学习完成了一个简单的应用,"私人通讯录". 运行效果如下图: 1.登录页 2.通讯录列表 3.添加 4.编辑 5.删除 6.注销 总视图结构如下图: 总结本程序 ...
- iOS开发——UI进阶篇(十一)应用沙盒,归档,解档,偏好设置,plist存储,NSData,自定义对象归档解档
1.iOS应用数据存储的常用方式XML属性列表(plist)归档Preference(偏好设置)NSKeyedArchiver归档(NSCoding)SQLite3 Core Data 2.应用沙盒每 ...
随机推荐
- POJ 3693 后缀数组
题目链接:http://poj.org/problem?id=3693 题意:首先定义了一个字符串的重复度.即一个字符串由一个子串重复k次构成.那么最大的k即是该字符串的重复度.现在给定一个长度为n的 ...
- redis 存储session实现session共享
nginx 作为代理 tomcat集群 redis存储共享session nginx采用轮询方式将动态请求反向代理给tomcat,tomcat通过加载相应jar包方式实现获得redis中共享的sess ...
- 微軟将从 .NET 4 以后的版本弃用 System.Data.OracleClient 以及Oracle 的各种连接方法
这是微软官方 ADO.NET Team Blog 去年就公布的消息: http://blogs.msdn.com/adonet/archive/2009/06/15/system-data-oracl ...
- JS(ajax笔记)
简介:AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). AJAX 不是新的编程语言,而是一种使用现有标准的新方法,是与服务器交 ...
- JavaScript中的apply()方法和call()方法使用介绍
1.每个函数都包含两个非继承而来的方法:apply()和call(). 2.他们的用途相同,都是在特定的作用域中调用函数. 3.接收参数方面不同,apply()接收两个参数,一个是函数运行的作用域(t ...
- oracle 授权
1.授权oss01用户,此用户可以执行sys.utl_i18n存储过程. grant execute on sys.utl_i18n to oss01;grant execute on sys.dbm ...
- Optimizing Performance: Data Binding(zz)
Optimizing Performance: Data Binding .NET Framework 4.5 Other Versions Windows Presentation Founda ...
- reshape2包--R高效数据处理包
介绍如何使用reshape2包将宽型数据转换成长型数据,将长型数据转换成宽型数据.Reshape2是Hadley Wickham开发和维护的. 1.长数据VS宽数据 宽型数据:每列代表一个不同的变量. ...
- BZOJ4356 : Ceoi2014 Wall
求出左上角到每个需要保护的点左上角的最短路树,那么最优解一定圈住了它们. 然后将每个点拆成四个点,四个点之间如果没跨越最短路树的树边,那就连0权边. 每个需要保护的点四周4个点都不可通行,求出最短路即 ...
- ACM 田忌赛马
田忌赛马 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 Here is a famous story in Chinese history. "That ...