iOS学习12--沙盒
来源:互联网 发布:php get上传 编辑:程序博客网 时间:2024/06/04 19:15
Go ahead!今晚将回顾一下iOS的沙盒机制以及使用。
1、沙盒的说明:
2、沙盒的结构分析
3、获取上面文件结构的目录
NSString*home= NSHomeDirectory();
// NSUserDomainMask代表从用户文件夹下找
// YES 代表展开路径中的波浪字符“~”
NSArray*documents =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
// 只有一个匹配目录,所以这个集合里面只有一个元素
NSString *doc= documents[0];
// 使用字符串拼接的方式获取目录名
NSString*doc2= [homestringByAppendingPathComponent:@"Documents"];
NSArray*caches = NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES);
NSString*cache = caches[0];
通过NSUserDefaults类存取该目录下的设置信息
NSString *tmpDir =NSTemporaryDirectory();
上面的几个目录,直接NSLog输出就可以看到对应的路径,根据打印的路径进入电脑的路径,找到对应的位置即可。
4、下面就对文件进行简单的操作,立即post代码。
NSError *error; NSLog(@"Home:%@",NSHomeDirectory());//获取根目录 NSFileManager *fileMgr = [NSFileManager defaultManager];//定义一个文件管理器 NSString *documentDirectory = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]; NSLog(@"Doucument path : %@",documentDirectory); //使用文件管理器创建一个文件 [fileMgr createDirectoryAtPath:[NSString stringWithFormat:@"%@/myFolder",NSHomeDirectory()] withIntermediateDirectories:NO attributes:nil error:&error]; //一步步获取路径 NSString *myFolder = [NSHomeDirectory() stringByAppendingPathComponent:@"myFolder"]; NSLog(@"myFolder:%@",myFolder); NSString *filePath = [myFolder stringByAppendingString:@"file-1.txt"]; NSString *str1 = @"i love you ,apple"; //上面获取文件路径之后,就向文件写入一些数据 [str1 writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:&error]; //读取刚才写入的数据,验证是否正确 NSString *readStr = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:&error]; NSLog(@"what you read: %@",readStr); /* 序列化数据写入到plist文件当中 */ // NSDictionary演练(2) NSString *path = [documentDirectory stringByAppendingPathComponent:@"users.plist"]; // 将数据封装成字典 NSMutableDictionary *dict = [NSMutableDictionary dictionary]; [dict setObject:@"chuck" forKey:@"姓名"]; // 转换年龄数据格式 // NSNumber *age = [NSNumber numberWithInteger:_ageText.text.integerValue]; [dict setObject:@(23) forKey:@"年龄"]; [dict setObject:@"10086" forKey:@"电话"]; // 将字典写入users.plist文件 [dict writeToFile:path atomically:YES]; //从plist文件中读取数据 NSString *pathOfPlist = [documentDirectory stringByAppendingPathComponent:@"users.plist"]; // 将plist文件加载至数据字典 NSDictionary *dictOfPlist = [NSDictionary dictionaryWithContentsOfFile:pathOfPlist]; NSLog(@"name:%@",dictOfPlist[@"姓名"]); NSLog(@"age:%@",dictOfPlist[@"年龄"]); NSLog(@"phoneNumber:%@",dictOfPlist[@"电话"]);
总结:
除了上面使用plist文件存储序列化的数据,还可以使用Archiver来实现复杂类型数据的存储归档,比如自定义对象,而且这些自定义对象必须遵守NSCoding协议。
- iOS学习12--沙盒
- IOS 学习
- ios学习
- ios学习
- IOS学习
- IOS 学习
- iOS 学习
- 学习iOS
- iOS学习
- ios 学习
- IOS学习
- ios 学习
- iOS学习
- ios学习
- IOS学习之IOS沙盒(sandbox)机制和文件操作
- IOS学习之IOS沙盒(sandbox)机制和文件操作
- IOS学习之IOS沙盒(sandbox)机制和文件操作
- IOS学习之IOS沙盒(sandbox)机制和文件操作
- VM Cannot create symlink
- uva 11021 Tribles(数学:概率+递推)
- 第十二周项目1-2:全局变量
- poj 3177 Redundant Paths 边双连通分量
- MATLAB中GUI中数据传输的几种方法
- iOS学习12--沙盒
- 可视化的算法【英】
- POJ 1321-棋盘问题(DFS)
- Codeforces Round #226 (Div. 2) C 数论
- Objective-C基础笔记(7)Foundation中的常用结构体
- Android:一个高效的UI才是一个拉风的UI(一)
- Android开发学习笔记:数据存取之SQLite浅析
- Javassist
- 模板之长整数映射为型别