/*
1.Bundle 代码
资源文件
配置文件
1). 内容在程序运行期间为只读, 不能进行任何修改.
2). 在开发期间可以修改
2.Documents
1). 大小限制
2). 数据库
3). 从应用程序安装到删除所放的东西
3.Library caches (1)放图片缓存 (2)网络数据存储/缓存
preference 配置 NSUserDfaults
4.tmp 临时性文件夹,数据用完就删
*/
//获得单例对象
NSUserDefaults *def = [NSUserDefaults standardUserDefaults];
[def setObject:@"uuu" forKey:@"name"];
[def synchronize];//同步
//单例得方法名:default,standard,share,managet等为开头的一般都是单例
-(void)fileManager
{
NSFileManager *manager = [NSFileManager defaultManager];
//判断一个文件是否存在
NSArray *array = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *path = [array lastObject];
NSString *pa = [NSString stringWithFormat:@"%@/hello",path];
BOOL judge = [manager fileExistsAtPath:pa];
if (judge == YES) {
NSData *data = [NSData dataWithContentsOfFile:pa];
NSLog(@"data = %@",data);
}else{
NSString *str = @"cao";
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
[data writeToFile:str atomically:YES];
}
}
#warning 拷贝
-(void)copyFiel
{
NSArray *arr = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *path = [arr lastObject];
path = [NSString stringWithFormat:@"%@/OMG.txt", path];
NSString *str = @"adasdasda";
[str writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];
NSLog(@"1111 = %@", path);
NSArray *arr2 = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docPath = [arr2 lastObject];
docPath = [NSString stringWithFormat:@"%@/OM", docPath];
//copy 的方法, 是个-号方法
NSFileManager *fm = [NSFileManager defaultManager];//defaultManager单例
NSError *error = nil; //错误
[fm copyItemAtPath:path toPath:docPath error:&error];
if (error == nil) {
NSLog(@" OMG == %@", path);
}
// NSLog(@"%@", error);
}
#pragma mark-
#pragma mark 复杂类型对象的存储
//将model类型的对象归档(序列化)为NSData类型的对象,然后将NSData类型对象进行存储
-(void)saveModel
{
Model *model = [[Model alloc] init];
model.name = @"laojiang";
model.age = 30;
//将Model转换为Dota
//如果Model在数组中,想要存储数组,也必须将数用复杂类型对象将数组转换成data,然后进行存储
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:model];
NSArray *array = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *path = [array lastObject];
NSString *p = [NSString stringWithFormat:@"%@/as.txt",path];
[data writeToFile:p atomically:YES];
}
-(void)readModel
{
NSArray *array = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *path = [array lastObject];NSString *str = [NSString stringWithFormat:@"%@/as.txt",path];
NSData *data = [NSData dataWithContentsOfFile:str];
//将data转换为model
//如果在归档的时候是数组,那么反归档得到的也是数组
Model *m = [NSKeyedUnarchiver unarchiveObjectWithData:data];
NSLog(@"%@是%ld岁的男人",m.name,m.age);
}