美文网首页
iOS沙盒之存储原理

iOS沙盒之存储原理

作者: 天蓬大元 | 来源:发表于2018-02-01 15:53 被阅读0次

一,沙盒数据存储在哪里?

当我们调用系统给我们提供的接口来存储数据时,有没有想过,我们存储的数据在手机里到底时怎么存储的呢。我们一步一步来探索一下。

1,先搞清楚数据缓存目录

上篇文章中提到,我们的数据被存储了/Library/PreferencePanes下,那到底是不是呢?我们来一探究竟。
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
//初始化NSNumber对象: 类方法、对象方法
//可将int、float、double、char等类型变量转NSNumber对象类型
 int a = 12;
 NSNumber *numA = [NSNumber numberWithInt:a];
 NSNumber *numB = @5;  //直接初始化NSNumber对象
 //2.调用方法写入
 NSArray *array = @[@"aa",numA,numB,@"bb"];
//字符串
[userDefaults setObject: array forKey:@"first"];
[userDefaults synchronize];//flash闪存
我们利用沙盒缓存了array,那么现在我们看看我们的沙盒目录
NSError *error = nil;
NSFileManager *file = [NSFileManager defaultManager];
NSArray *array = [file subpathsOfDirectoryAtPath: NSHomeDirectory() error:&error];
if(error){
    NSLog(@"error=%@",error);
}else{
    NSLog(@"array = %@",array);
}
控制台打印:SandBox[15403:1962220] array = (
".com.apple.mobile_container_manager.metadata.plist",
Library,
"Library/Preferences",
"Library/Preferences/LG.SandBox.plist",
"Library/Caches",
"Library/Caches/Snapshots",
"Library/Caches/Snapshots/LG.SandBox",
"Library/Caches/Snapshots/LG.SandBox/E2FE0326-87A9-4C08-9461-BC29E7038D07@2x.ktx",
"Library/Caches/Snapshots/LG.SandBox/52B0E8DA-AD21-44FE-8D84-28FA5B088C94@2x.ktx",
Documents,
tmp,
SystemData
)
看着这个LG.SandBox.plist文件怎么这么像NSUserDefaults的默认存储文件呢?好吧,我们来验证一下。

如何查看plist文件内容

OK,现在我们来读取LG.SandBox.plist文件的内容。
//Library
NSArray*paths=NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES); 
NSString*path=[pathsobjectAtIndex:0];
//然后拼接完整的路径
NSString *pathNew = [path stringByAppendingString:@"Preferences/LG.SandBox.plist"];
//2.通过字典方式获取plist文件数据
NSDictionary *dic = [NSDictionary dictionaryWithContentsOfFile: prePath];
NSLog(@"dic=%@",dic);
控制台信息:dic2={
                 first = (
                           aa,
                           12,
                           5,
                           bb
                        );
                }
各位有没有想过:既然沙盒是依靠plist文件存储的,而plist文件只允许存在一个主Key。那如果我们存储多个数据,那怎么存进plist文件呢?下载dome来看看吧。感觉还可以,就给个star。

Dome

相关文章

  • 沙盒机制

    IOS数据存储之文件沙盒存储

  • iOS数据库存储之SQLite3

    资源连接: iOS数据库存储之SQL语句; iOS数据存储之文件沙盒; iOS数据存储之NSCoding; SQL...

  • iOS数据库存储之SQL语句

    资源连接: iOS数据库存储之SQLite3; iOS数据存储之文件沙盒; iOS数据存储之NSCoding; S...

  • iOS数据存储之NSCoder

    资源连接: iOS数据库存储之SQL语句; iOS数据库存储之SQLite3; iOS数据存储之文件沙盒; iOS...

  • iOS沙盒之存储原理

    一,沙盒数据存储在哪里? 当我们调用系统给我们提供的接口来存储数据时,有没有想过,我们存储的数据在手机里到底时怎么...

  • 使用沙盒的正确姿势

    在学习iOS存储方法之前,先了解一下iOS存储机制——沙盒应用沙盒机制:每个iOS应用都有自己的应用沙盒(文件系统...

  • iOS 数据持久化知识汇总(1)—————存储路径

    一、沙盒和沙盒存储路径 1、沙盒是什么 iOS 每个iOS应用都有自己的应用沙盒,应用沙盒就是文件系统目录 。所...

  • 05-iOS数据存储

    一、iOS沙盒机制 iOS的每个应用都有属于自己的存储空间,即沙盒应用只能访问自己的沙盒,不可访问其他区域。 沙盒...

  • Xamarin.iOS沙盒存储

    本文主要讲解在实际开发中使用沙盒进行存储的原理和简单实现 首先我们需要了解在iOS中沙盒究竟是个什么东西?沙盒类似...

  • iOS 沙盒

    沙盒机制:在iOS中每个APP都拥有自己的沙盒,APP只能访问对应沙盒中存储的数据, iOS是不允许跨越沙盒去访问...

网友评论

      本文标题:iOS沙盒之存储原理

      本文链接:https://www.haomeiwen.com/subject/wiedzxtx.html