`
百合不是茶
  • 浏览: 354771 次
社区版块
存档分类
最新评论

沙盒模型

阅读更多

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

 

 

 

自定义归档数据,以前再总结

 

5
0
分享到:
评论

相关推荐

    [模仿]CssDesk CSS沙盒模型制作工具

    【CSSDesk CSS沙盒模型制作工具详解】 在Web前端开发中,CSS(Cascading Style Sheets)是用于控制网页布局和样式的语言。为了便于测试和调试CSS代码,开发者们通常会利用各种在线沙盒环境,如CssDesk,来快速预览...

    Swift编程-iOS应用-沙盒模型

    Swift编程在iOS应用开发中扮演着至关重要的角色,而iOS应用的运行环境特有的一种机制——沙盒模型,是理解应用程序行为和数据管理的关键。在这个视频教程中,我们将深入探讨沙盒模型及其在Swift编程中的实际应用。 ...

    一种基于XEN半虚拟化技术的沙盒模型的设计与实现

    一种基于XEN半虚拟化技术的沙盒模型的设计与实现

    Cesium沙盒纽约城市模型3dtile

    纽约城3dtile模型 Cesium沙盒纽约城:https://sandcastle.cesium.com/?src=3D%20Tiles%20Feature%20Picking.html

    nvnvyezi#Daily-notes#沙盒模型1

    背景一般而言,对于网络上的网页中的JavaScript代码和插件都是不受信的(除非是经过认证的网站),特别是一些故意设计侵入浏览器运行的主机代码更是非常危险,通

    解决vb中ie控件失效的办法

    - **沙盒模型**:在IE7及更高版本中,为了提高安全性,浏览器引入了沙盒模型,限制了脚本和插件的权限,这可能会影响到ActiveX控件的运行。 - **注册表编辑器**:`reg`文件是注册表编辑器(RegEdit)使用的文件格式...

    WEB应用程序安全培训材料

    同时,学习如何突破服务器端沙盒模型的攻击,因为这是最直接有效的攻击方式。在攻防演练中,通过模拟实验提高实战能力,但必须遵循不作恶的原则。 参考书目包括《信息安全实验指导》、《网络安全评估》和《黑客大...

    安卓安全综述

    在沙盒模型中,每个应用程序都被视为独立的个体,运行在自己的沙盒环境中,限制其对系统资源的访问。此外,安卓操作系统对开发者友好的设计,包括默认的安全措施和灵活的安全控制,减轻了开发者的安全负担。对于不...

    Java JDK 6压缩包:下载、解压与安装全程解析

    Java Development Kit (JDK),作为Java编程语言的核心组成部分,包含了编译、运行和调试Java应用程序所需的所有工具。JDK 6,发布于2006年,是Java平台的一个重要里程碑,引入...安全增强:加强了沙盒模型,增强了网络

    Air - filetile

    - **沙盒模型**:Adobe AIR采用安全沙盒模型,限制了应用程序对用户系统的访问权限,以保护用户的安全。 - **数字签名**:发布应用程序时,可以使用数字签名增加信任度,防止恶意篡改。 6. **应用案例** Adobe ...

    Beginning.iPad.Application.Development

    理解沙盒模型对于安全编程至关重要,包括文件系统权限、钥匙串服务和偏好设置的管理。 10. 测试和发布:最后,读者会学习如何使用Xcode的内置测试工具进行单元测试和UI测试,以及如何提交应用到App Store进行审核和...

    Android平台系统架构_en.doc

    权限管理系统控制应用程序对系统资源的访问,沙盒模型确保每个应用在独立的环境中运行,避免相互干扰;签名策略则验证应用的来源,防止恶意软件的侵入;而加密技术则用于保护数据的安全传输。 三、移动云计算: ...

    Android 安全与权限

    Android 采用了一种沙盒模型来隔离每个应用程序。在这种模型下: 1. **进程隔离**:每个应用程序都在自己的独立进程中运行,这意味着一个应用程序的崩溃不会影响到其他应用程序。 2. **文件系统隔离**:应用程序的...

    基于Android系统的隐私保护技术综述.pdf

    Android的安全机制主要基于沙盒模型和应用签名。每个应用被分配唯一的UID,实现应用间的隔离。应用签名允许开发者对多应用建立信任关系,但不直接防止恶意软件。权限机制是Android安全的核心,包括"normal"、...

    WEB应用程序安全培训材料.pptx

    - **浏览器插件沙盒模型**:保护用户免受恶意插件的影响。 ### 六、应用程序漏洞成因分类 - **未验证的用户输入**: - 描述:攻击者可以通过篡改请求字符串、头、表单域等来发起攻击。 - 攻击类型:包括强制浏览...

    WEB应用程序安全培训材料.ppt

    此外,还涉及到Web应用程序安全模型,如服务器端操作系统、Web服务、沙盒模型等,以及它们如何通过HTTP/HTTPS交互,并与数据库、目录服务、邮件服务等协同工作。 【基础知识】部分,学习者需要掌握至少一门网络编程...

    ios-个人界面模块简单封装.zip

    iOS应用的文件系统是基于沙盒模型的,每个应用都有自己的私有目录,不能直接访问其他应用的数据。在沙盒中,应用可以保存用户数据,例如个人资料。开发者通常会将非敏感的用户数据,如昵称和姓名,保存在Documents...

    沙盒

    例如,iOS和Android系统都采用沙盒模型来保护用户数据和设备安全。 5. **恶意软件分析**:安全研究人员利用沙盒来分析和研究未知的恶意软件,观察其行为但不使其在真实环境中造成损害。 6. **云服务**:云服务提供...

    深入理解Android 卷Ⅰ卷Ⅱ 邓凡平.zip

    5. **安全与隐私**:讨论Android系统中的安全机制,如签名验证、沙盒模型等。 6. **性能优化**:提供关于内存管理、CPU使用率优化以及电量消耗降低的实践建议。 7. **Android开发工具**:介绍ADT(Android ...

Global site tag (gtag.js) - Google Analytics