1,常用目录的获取
//沙盒所在的根目录 NSString *homeDirectory = NSHomeDirectory(); NSLog(@"path:%@", homeDirectory); //应用程序路径 NSString*appPath = [[NSBundle mainBundle] resourcePath]; NSLog(@"path:%@", appPath); //document目录 NSArray *docPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentPaths = [docPaths objectAtIndex:0]; NSLog(@"path:%@", documentPaths); //Cache目录 NSArray *cacPaths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); NSString *cachePath = [cacPaths objectAtIndex:0]; NSLog(@"%@", cachePath); //获取Library目录 NSArray *libPaths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES); NSString *libraryPath = [libPaths objectAtIndex:0]; NSLog(@"%@", libraryPath); //获取Tmp目录 NSString *tmpDir = NSTemporaryDirectory(); NSLog(@"%@", tmpDir);
2015-11-29 23:27:54.904 file[1338:162595] path:/Users/wang
2015-11-29 23:27:54.904 file[1338:162595] path:/Users/wang/Library/Developer/Xcode/DerivedData/file-clrabutrnxrhkncilvhdiysmqvir/Build/Products/Debug/file.app/Contents/Resources
2015-11-29 23:27:54.904 file[1338:162595] path:/Users/wang/Documents
2015-11-29 23:27:54.904 file[1338:162595] /Users/wang/Library/Caches
2015-11-29 23:27:54.904 file[1338:162595] /Users/wang/Library
2015-11-29 23:27:54.905 file[1338:162595] /var/folders/gg/cc6n2tms01j48j3l9g6sph100000gp/T/
2,利用系统进行沙盒存储,
//利用系统进行数据的归档和解档操作 NSArray *arr = [NSArray arrayWithObjects:@1,@"你好",@3, nil]; NSString* filePath=[NSHomeDirectory() stringByAppendingPathComponent:@"test2.txt"]; //归档数据 BOOL success= [NSKeyedArchiver archiveRootObject:arr toFile:filePath]; //接档 NSArray *array=[NSKeyedUnarchiver unarchiveObjectWithFile:filePath]; for (NSString *str1 in array){ NSLog(@"%@",str1); }
2015-11-29 23:30:01.239 file[1352:163601] 1
2015-11-29 23:30:01.239 file[1352:163601] 你好
2015-11-29 23:30:01.239 file[1352:163601] 3
3,沙盒存储不同类型的数据
//文件归档操作 NSArray *array = [NSArray arrayWithObjects:@1,@2,@"中文", nil]; NSInteger integer = 10; BOOL archiverBool = YES; /*------对象归档--------------------*/ NSMutableData *data = [NSMutableData data]; NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data]; //对多个对象编码归档,key是解档时对象的标识符,可任意编写 //encode有多个重载,但并不是任何系统对象都有重载方法 [archiver encodeObject:array forKey:@"arr"]; [archiver encodeInteger:integer forKey:@"integer"]; [archiver encodeBool:archiverBool forKey:@"archiverBool"]; //完成编码 [archiver finishEncoding]; NSString *filepath = [NSHomeDirectory() stringByAppendingPathComponent:@"1.txt"]; //将data以原子操作方式写入文件 BOOL success = [data writeToFile:filepath atomically:YES]; if (success) { NSLog(@"归档成功"); } /*------对象归档--------------------*/ /*------对象解档--------------------*/ //将文件数据加载入NSData对象 NSData *data2 = [NSData dataWithContentsOfFile:filepath]; //使用NSData对象初始化接档器 NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data2]; //根据归档时的类型和key解档对应数据 NSArray *arr2 = [unarchiver decodeObjectForKey:@"arr"]; NSInteger integer2 = [unarchiver decodeIntegerForKey:@"integer"]; BOOL unarchiveBool = [unarchiver decodeBoolForKey:@"archiveBool"]; NSLog(@"%@",arr2); NSLog(@"%ld",integer2); NSLog(@"%d",unarchiveBool); /*------对象接档--------------------*/
2015-11-29 23:31:17.078 file[1366:164679] 归档成功
2015-11-29 23:31:17.079 file[1366:164679] (
1,
2,
"\U4e2d\U6587"
)
2015-11-29 23:31:17.079 file[1366:164679] 10
2015-11-29 23:31:17.079 file[1366:164679] 0
自定义归档数据,以前再总结
相关推荐
【CSSDesk CSS沙盒模型制作工具详解】 在Web前端开发中,CSS(Cascading Style Sheets)是用于控制网页布局和样式的语言。为了便于测试和调试CSS代码,开发者们通常会利用各种在线沙盒环境,如CssDesk,来快速预览...
Swift编程在iOS应用开发中扮演着至关重要的角色,而iOS应用的运行环境特有的一种机制——沙盒模型,是理解应用程序行为和数据管理的关键。在这个视频教程中,我们将深入探讨沙盒模型及其在Swift编程中的实际应用。 ...
一种基于XEN半虚拟化技术的沙盒模型的设计与实现
纽约城3dtile模型 Cesium沙盒纽约城:https://sandcastle.cesium.com/?src=3D%20Tiles%20Feature%20Picking.html
背景一般而言,对于网络上的网页中的JavaScript代码和插件都是不受信的(除非是经过认证的网站),特别是一些故意设计侵入浏览器运行的主机代码更是非常危险,通
- **沙盒模型**:在IE7及更高版本中,为了提高安全性,浏览器引入了沙盒模型,限制了脚本和插件的权限,这可能会影响到ActiveX控件的运行。 - **注册表编辑器**:`reg`文件是注册表编辑器(RegEdit)使用的文件格式...
同时,学习如何突破服务器端沙盒模型的攻击,因为这是最直接有效的攻击方式。在攻防演练中,通过模拟实验提高实战能力,但必须遵循不作恶的原则。 参考书目包括《信息安全实验指导》、《网络安全评估》和《黑客大...
在沙盒模型中,每个应用程序都被视为独立的个体,运行在自己的沙盒环境中,限制其对系统资源的访问。此外,安卓操作系统对开发者友好的设计,包括默认的安全措施和灵活的安全控制,减轻了开发者的安全负担。对于不...
Java Development Kit (JDK),作为Java编程语言的核心组成部分,包含了编译、运行和调试Java应用程序所需的所有工具。JDK 6,发布于2006年,是Java平台的一个重要里程碑,引入...安全增强:加强了沙盒模型,增强了网络
- **沙盒模型**:Adobe AIR采用安全沙盒模型,限制了应用程序对用户系统的访问权限,以保护用户的安全。 - **数字签名**:发布应用程序时,可以使用数字签名增加信任度,防止恶意篡改。 6. **应用案例** Adobe ...
理解沙盒模型对于安全编程至关重要,包括文件系统权限、钥匙串服务和偏好设置的管理。 10. 测试和发布:最后,读者会学习如何使用Xcode的内置测试工具进行单元测试和UI测试,以及如何提交应用到App Store进行审核和...
权限管理系统控制应用程序对系统资源的访问,沙盒模型确保每个应用在独立的环境中运行,避免相互干扰;签名策略则验证应用的来源,防止恶意软件的侵入;而加密技术则用于保护数据的安全传输。 三、移动云计算: ...
Android 采用了一种沙盒模型来隔离每个应用程序。在这种模型下: 1. **进程隔离**:每个应用程序都在自己的独立进程中运行,这意味着一个应用程序的崩溃不会影响到其他应用程序。 2. **文件系统隔离**:应用程序的...
Android的安全机制主要基于沙盒模型和应用签名。每个应用被分配唯一的UID,实现应用间的隔离。应用签名允许开发者对多应用建立信任关系,但不直接防止恶意软件。权限机制是Android安全的核心,包括"normal"、...
- **浏览器插件沙盒模型**:保护用户免受恶意插件的影响。 ### 六、应用程序漏洞成因分类 - **未验证的用户输入**: - 描述:攻击者可以通过篡改请求字符串、头、表单域等来发起攻击。 - 攻击类型:包括强制浏览...
此外,还涉及到Web应用程序安全模型,如服务器端操作系统、Web服务、沙盒模型等,以及它们如何通过HTTP/HTTPS交互,并与数据库、目录服务、邮件服务等协同工作。 【基础知识】部分,学习者需要掌握至少一门网络编程...
iOS应用的文件系统是基于沙盒模型的,每个应用都有自己的私有目录,不能直接访问其他应用的数据。在沙盒中,应用可以保存用户数据,例如个人资料。开发者通常会将非敏感的用户数据,如昵称和姓名,保存在Documents...
例如,iOS和Android系统都采用沙盒模型来保护用户数据和设备安全。 5. **恶意软件分析**:安全研究人员利用沙盒来分析和研究未知的恶意软件,观察其行为但不使其在真实环境中造成损害。 6. **云服务**:云服务提供...
5. **安全与隐私**:讨论Android系统中的安全机制,如签名验证、沙盒模型等。 6. **性能优化**:提供关于内存管理、CPU使用率优化以及电量消耗降低的实践建议。 7. **Android开发工具**:介绍ADT(Android ...