1、在Mac上显示和取消隐藏文件夹的命令:------>便于开发
1>defaults write com.apple.finder AppleShowAllFiles YES
2>defaults write com.apple.finder AppleShowAllFiles NO
2、获取沙盒Documents全路径的快捷方法
NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory,NSUserDomainMask, YES)[0]
3.数据存取
0>.应用沙盒
1.Documents 保存应用运行时生成的需要持久化的数据,iTunes同步设备时,会备份该目录。
2.tmp 保存应用运行时所需的临时数据,使用完毕时再将相应的数据删除,不会同步
3.Library/Caches 保存应用运行时生成的需要持久化的数据,iTunes同步设备时,不会备份该目录。一般存储体积大,不需要备份的非重要数据
4.Library/Preference 保存应用的所有偏好设置,ios的Setting应用会在该目录中查找应用的设置信息。iTunes同步时,会备份该目录。
总结:体积大 tmp(里面的内容可能会被系统随机删除) library/caches iTunes不会备份
体积小 Documents library/Preference iTunes会备份
1>XML属性(Plist)归档一般都是先写在读的
0.使用NSHomeDirectory()这个函数获取项目的沙盒路径
1.在ViewdidLoad方法中读取文件
2.在按钮监听事件中写入文件 写文件调用文件的[dict writeToFile:filePath atomically:YES];
2>.Preference(偏好设置)
一般都是先存在读的
0.NSUserDefaults *user = [NSUserDefaults standardUserDefaults]; //初始化用户默认设置
1.初始化后,掉这个方法,设置值 [user setObject:_qq.text forKey:@"qq"];
2.马上进行存储(马上进行同步)[user synchronize];
3. 在viewdidload方法中,读数据
1>初始化用户默认设置
2>调这个方法取值 [user objectForKey:@"qq"];
3>归档和解析 NSKeyedArchiver归档返回的是一个数组,
1>归档返回的是个BOOL类型的,默认就是YES 这个kFilePath指的是Documents的全路径
[NSKeyedArchiver archiveRootObject:_dataArray toFile:kFilePath];
2>解析
_dataArray = [NSKeyedUnarchiver unarchiveObjectWithFile:kFilePath];
3>将模型对象存入沙盒的方法
模型必须实现这两个方法
#pragma mark 当从文件中解析对象时调用
// 在这个方法说清楚:
// 1.哪些属性需要解析(读取)
// 2.怎样解析(读取)这些属性
- (id)initWithCoder:(NSCoder *)deCoder
{
if (self = [super init]) {
_name = [deCoder decodeObjectForKey:@"name"];
_phone = [deCoder decodeObjectForKey:@"phone"];
}
return self;
}
#pragma mark 将对象归档的时候会调用(将对象写入文件之前会调用)
// 在这个方法说清楚:
// 1.哪些属性需要存储
// 2.怎样存储这些属性
- (void)encodeWithCoder:(NSCoder *)enCoder
{
[enCoder encodeObject:_name forKey:@"name"];
[enCoder encodeObject:_phone forKey:@"phone"];
}