NSUserDefaults 简单使用(沙盒简介)

应用程序的沙盒:
  • 每个应用程序之间相互隔离的
  • 每个应用程序只能访问自己本地的目录文件,不能访问其他app的目录(越狱除外)
  • 为每个应用程序构建了自己的运行空间
  • 每个应用程序有自己的缓存和文档
沙盒目录:
  • 应用程序的目录
  • Documents目录:持久化文档数据
  • Library目录:缓存数据(caches) 持久化(Preferences)
  • Tmp目录
    // 获取app目录
    NSString * appPath = [[NSBundle mainBundle] bundlePath];
    NSLog(@"appPath:%@",appPath);
    // 获取数据的home目录
    NSString * homePath = NSHomeDirectory();
    NSLog(@"homePath:%@",homePath);
    // 获取documents目录 第一个参数表面是documents目录 第二个参数是iOS上的选项 第三个参数 是否展开
    NSString * docPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
    NSLog(@"docPath:%@",docPath);
//    docPath = [homePath stringByAppendingPathComponent:@"Documents"];
    // 获取library目录
    NSString * libPath = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES)[0];
    NSLog(@"libPath:%@",libPath);
    // 获取caches目录
    NSString * cachesPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[0];
    NSLog(@"cachesPath:%@",cachesPath);
    // tmp目录
    NSString * tmpPath = NSTemporaryDirectory();
    NSLog(@"tmpPath:%@",tmpPath);

NSUserDefaults: 单例类,在整个应用程序中只有一个,本质是应用程序特定目录下的一个plist文件
一般用于数据的持久化存储,存储数据量小的数据(设置 用户数据等等)
在整个应用程序的生命周期都是存在的
一般用于存储基本数据类型:NSString NSSData NSNumber Boolean NSArray NSDictionary容器对象中也必须是以上基本类型

1.写入到沙盒
    // 类方法获取单例对象
    NSUserDefaults * userDefaults = [NSUserDefaults standardUserDefaults];
    // 保存BOOL值
    [userDefaults setBool:<span class="s1" style="font-family: Arial, Helvetica, sans-serif;">YES</span><span style="font-family: Arial, Helvetica, sans-serif;"> forKey:@"kState"];</span>
    // 将数据立即同步写入到文件中
    [userDefaults synchronize];
2.从沙盒中读取
    NSUserDefaults * userDefaults = [NSUserDefaults standardUserDefaults];
    BOOL yes = [userDefaults boolForKey:@"kState"];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,981评论 19 139
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,216评论 30 472
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,466评论 25 708
  • 1、 沙盒概念基本介绍 iOS 应用程序只能在该 app 的文件系统中读取。这个默认的 app 文件系统就是我们说...
    Laughingg阅读 2,775评论 2 10
  • 剩余参数(rest parameter)允许长度不确定的实参表示为一个数组。 描述 如果一个函数的最后一个形参是以...
    王康_Wang阅读 1,191评论 0 0