1. 写宏的时候可以建一个只有header的头文件
2. #pragma mark 如果想要实现归档和反归档的操作需要签订一个协议 NSCoding
- (void)encodeWithCoder:(NSCoder *)aCoder { // 归档
[aCoder encodeObject:self.name forKey:@"姓名"];
[aCoder encodeObject:self.sex forKey:@"性别"];
[aCoder encodeObject:self.hobby forKey:@"爱好"];
[aCoder encodeInteger:self.age forKey:@"年龄"];
}
- (id)initWithCoder:(NSCoder *)aDecoder { // 反归档
self = [super init];
if (self) {
self.name = [aDecoder decodeObjectForKey:@"姓名"];
self.age = [aDecoder decodeIntegerForKey:@"年龄"];
self.hobby = [aDecoder decodeObjectForKey:@"爱好"];
self.sex = [aDecoder decodeObjectForKey:@"性别"];
}
return self;
}
3. 清除缓存(删除cache文件夹)
NSArray *cache = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *cachePath = cache[0];
[manager removeItemAtPath:cachePath error:nil];
4. 苹果手机为了保证自己数据上的绝对的安全设计了沙盒文件, 每一个应用程序都配备了自己的沙盒文件, 每一次运行, 文件夹的名字就会变成一个没有任何规律的字符串
第一个参数: 当前要前往哪一个文件夹, 前往documents文件用NSDocumentDirectory:64行那个, 还可以前往caches 文件夹:对应68行
第二个参数: 访问的文件夹类型, 指定访问时用户文件夹
第三个参数
绝对路径(YES):是给系统来使用的, 系统可以根据当前的路径找到文件夹, 我们在操作文件的时候都是用绝对路径
相对路径(NO 几乎不用): 相对路径只会把要前往的文件夹显示, 其他部分都是~, 告诉程序员要去哪个文件
5. 沙盒里一共有三个文件夹
1. 是Documents文件: 主要是用来存储用户的想要存储的一些信息, 比如收藏的信息或者自己设置的一些内容, 所以我们做收藏功能就是往这个文件夹里写东西
2. Library 文件夹是方便程序开发者使用的, 主要操作它里的两个文件夹, caches 和 Preferences
caches: 用来保存缓存文件, SDWebImage 会把图片加到缓存文件中, 所以清除缓存功能就是把这个文件夹删除
Preferences 一般来保存程序员设置的信息, 比如NSUserDefaults就会把数据保存在这个文件夹里
3.tmp文件: 一般存放临时内容
之前在沙盒里还有一个 .app文件, 在新的版本里已经被移走了