UI学习笔记---第十四天数据持久化
一.沙盒机制
每个应用程序位于文件系统的严格限制部分
每个应用程序只能在为该程序创建的文件系统中读取文件
每个应用程序在iOS系统内斗放在了统一的文件夹目录下
沙盘路径的位置
1. 通过Finder查找程序沙盘相对路径
~/Library/Application Support/iPhone Simulator
2. 通过代码查找程序沙盘相对路径
NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory directory,NSSearchPathDomainMask domainMask,BOOL expandTilde);
常见问题:
模拟器路径内有可能包含多个系统版本的路径
NSDocumentDirectory————>Documents文件夹
NSDocumentationDirectory——>Documentation文件夹 //不属于iOS 是Mac-os x中使用
NSTemporaryDirectory()———>tmp文件夹
NSLibraryDirectory——————>Library文件夹
二.简单对象写入文件
文件存储的相对目录
//获取所有的documents文件夹
NSArray *documentList =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);
//将最后一个documents文件夹路径作为问价的存储目录
NSString *documentsPath = documentList.lastObject;
字符串对象写入文件
数组对象写入文件
字典对象写入文件
二进制对象写入文件
三.复杂对象写入文件
什么是复杂对象
1.在Foundation框架内不存在的数据类
2.无法在程序内通过writeToFile类型的方法写入到文件内
3.复杂对象至少包含一个实例对象
构造复杂对象的生成类
@interface ABPersonInfo : NSObject
@property (nonatomic ,retain) NSString *name;
@property (nonatomic ,retain) NSNumber *age;
@end
@implementation ABPersonInfo
@end
NSCoding协议
@protocol NSCoding
- (void)encodeWithCoder:(NSCoder *)aCoder;
- (id)initWithCoder:(NSCoder *)aDecoder;
@end
使复杂对象接受NSCoding协议
@interface ABPersonInfo:NSObject<NSCoding>
使复杂对象实现NSCoding协议
@implementation ABPersonInfo
- (id)initWithCoder:(NSCoder *)aDecoder{
self = [super init]; if (self) {
self.age = [aDecoder decodeObjectForKey:@"age"];
self.name = [aDecoder decodeObjectForKey:@"name"]; }
return self; }
- (void)encodeWithCoder:(NSCoder *)aCoder{
[aCoder encodeObject:self.age forKey:@"age"]; [aCoder encodeObject:self.name forKey:@"name"];
}
@end
将复杂对象ABPersonInfo的实例对象写入文件
转载于:https://www.cnblogs.com/limicheng/p/3876673.html
UI学习笔记---第十四天数据持久化相关推荐
- Windows保护模式学习笔记(十四)—— 阶段测试
Windows保护模式学习笔记(十四)-- 阶段测试 题目一 解题步骤 题目二 解题步骤 题目一 描述:给定一个线性地址,和长度,读取内容 int ReadMemory(OUT BYTE* buffe ...
- python数据挖掘学习笔记】十四.Scipy调用curve_fit实现曲线拟合
#2018-03-28 10:02:08 March Wednesday the 13 week, the 087 day SZ SSMR python数据挖掘学习笔记]十四.Scipy调用curve ...
- Spring Security技术栈学习笔记(十四)使用Spring Social集成QQ登录验证方式
上一篇文章<Spring Security技术栈开发企业级认证与授权(十三)Spring Social集成第三方登录验证开发流程介绍>主要是介绍了OAuth2协议的基本内容以及Spring ...
- 深度学习笔记(十四)—— 超参数优化[Hyperparameter Optimization]
这是深度学习笔记第十四篇,完整的笔记目录可以点击这里查看. 训练神经网络会涉及到许多超参数设置.神经网络中最常见的超参数包括: the initial learning rate lea ...
- Slicer学习笔记(十四)vtkMRMLVolumeNode 与 vtkImageData
Slicer学习笔记(十四)vtkMRMLVolumeNode 与 vtkImageData 1.Adding in MRML to Slicer 2.MRML Scene 3.MRML Nodes ...
- OpenCV学习笔记(十四):重映射:remap( )
OpenCV学习笔记(十四):重映射:remap( ) 图像的坐标映射是通过原图像与目标图像之间建立一种映射关系,这种映射关系有两种,一种是计算原图像任意像素在映射后图像的坐标位置,另一种是计算变换后 ...
- QT学习笔记(十四):QLayout的属性介绍
QT学习笔记(十四):QLayout的属性介绍 主要包括QBoxLayout.和QGridLayout以及QFormLayout等的参数类似. 我主要说明一下QGridLayout在QtDesigne ...
- MATLAB学习笔记(十四)
MATLAB学习笔记(十四) 一.线性方程组求解 1.1 直接法 1.1.1 利用左除运算符 1.1.2 利用矩阵分解 1.2 迭代法 1.2.1 雅可比(Jacobi)迭代法 1.2.2 高斯-赛德 ...
- Cty的Linux学习笔记(十四)
Linux学习笔记--第十四篇 环境变量配置文件: /etc/profile:预设了几个重要的变量,例如PATH,USER,LOGNAME,MAIL,INPUTRC,HOSTNAME,HISTSIZE ...
最新文章
- 分享一个数据库工具DTOOLS
- Maven系列--setting.xml 配置详解
- kubernetest master 节点恢复灾备恢复操作指南
- win7家庭版远程桌面补丁_无需惊慌!微软漏洞数月后再被“预警”打补丁即可防御...
- Win7系统下调整硬盘分区大小给C盘更多的空间
- php stomp rabbitmq,php实现通过stomp协议连接ActiveMQ操作示例
- cygwin清屏技巧
- 关于趋势科技防毒墙网络版的卸载
- 计算机键盘正确指法操作方法,键盘指法,图文详解键盘指法练习方法
- 图像的特征提取——HOG特征、Harr特征、LBP特征
- MySQl 5.7版本的Data文件夹,my.ini文件,Uploads文件夹所在目录
- ‘adb‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。
- Lyx使用对中文进行编译
- 闲谈IPv6-没有选项胜有选项的TLV
- 计算机二级Office科目方向软件套组安装指南MS Office+WPS
- 帮忙写基于SSM框架的购物商城管理系统
- 三天打鱼两天晒网问题Java解法
- window.showModalDialog不兼容解决办法
- 单摆运动模拟程序C语言,单摆C语言程序代码
- Win10激活Office2013的技巧
热门文章
- JAVASE图书系统期末试题
- Canvas 渐变特效
- 挖洞技巧:APP手势密码绕过思路总结
- xlrd.biffh.XLRDError: Excel xlsx file; not supported报错
- 《剑指offer》从尾到头打印链表
- Hbase写数据,存数据,读数据的详细过程
- Scala中zip或者zipWithIndex的计数器用法
- javaweb学习总结(十八):JSP属性范围
- 深入理解java中的Soft references amp;amp; Weak references amp;amp; Phantom reference
- c#跨线程操作控件(有UI操作)|及多线程操作