沙盒,plist文件,偏好设置

偏好设置:

应用程序包:(上图中的Layer)包含了所有的资源文件和可执行文件
Documents:保存应用运行时生成的需要持久化的数据,iTunes同步设备时会备份该目录。例如,游戏应用可将游戏存档保存在该目录

tmp:保存应用运行时所需的临时数据,使用完毕后再将相应的文件从该目录删除。应用没有运行时,系统也可能会清除该目录下的文件。iTunes同步设备时不会备份该目录

Library/Caches:保存应用运行时生成的需要持久化的数据,iTunes同步设备时不会备份该目录。一般存储体积大、不需要备份的非重要数据

Library/Preference:保存应用的所有偏好设置,iOS的Settings(设置)应用会在该目录中查找应用的设置信息。iTunes同步设备时会备份该目录

plist文件详解:

#import "ViewController.h"
#import "Contact.h"

@interface ViewController ()

@property (nonatomic,copy) NSString *plistPath;

@end

@implementation ViewController

-(NSString *)plistPath{
    if (!_plistPath) {

        // 获取document目录
        NSString *doc = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];

        NSLog(@"%@",doc);
        _plistPath = [doc stringByAppendingPathComponent:@"data.plist"];
    }

    return _plistPath;
}

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    //查看沙盒的路径
    //1.控制台打印沙盒的路径,使用finder-前往-文件夹 打开
    //2.控制台打印沙盒的路径,打开终端 open + 路径
    //3.使用simpholders工具
    //4.可以断点 输入po NSHomeDirectory()

    //获取缓存路径(cache)
    NSString *cachePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
    NSLog(@"%@",cachePath);

    //获取临时路径(tmp)
    NSString *tmpPath = NSTemporaryDirectory();
    NSLog(@"%@",tmpPath);

    //主目录
    NSString *homePath = NSHomeDirectory();
    NSLog(@"%@",homePath);

}

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{

    [self testString];

    //不是所有对象都有可使用write方法
    Contact *contact = [[Contact alloc] init];
    contact.name = @"zhangsan";

}

-(void)testString{
    NSString *data = @"aabc";

    //写字符串
    [data writeToFile:self.plistPath atomically:YES encoding:NSUTF8StringEncoding error:nil];

    //读字符串
    NSString *str = [NSString stringWithContentsOfFile:self.plistPath encoding:NSUTF8StringEncoding error:nil];
    NSLog(@"%@",str);

}

-(void)testDictionary{
    //把数据保存到沙盒的一个plist文件里
    NSDictionary *data = @{@"name":@"zhangsan",@"age":@23};

    //把数据写入一个文件
    [data writeToFile:self.plistPath atomically:YES];

    //读取
    NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:self.plistPath];
    NSLog(@"%@",dict);

}

/**
 *  测试数组存储在一个plist文件
 */
-(void)testArray{
    //把数据保存到沙盒的一个plist文件里
    NSArray *data = @[@"asd",@"asds"];

    //把数据写入一个文件
    [data writeToFile:self.plistPath atomically:YES];

    //读取
    NSArray *array = [NSArray arrayWithContentsOfFile:self.plistPath];
    NSLog(@"%@",array);
}

用户偏好设置详解:

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    [self modify];

}

-(void)modify{
    //修改 用户偏好设置 数据
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:@"321" forKey:@"password"];
    [defaults synchronize];
}

-(void)delete{
    //删除 用户偏好设置 数据
    NSUserDefaults *defautls = [NSUserDefaults standardUserDefaults];
    [defautls removeObjectForKey:@"account"];

    //删除记得也要调用 同步的方法
    [defautls synchronize];

}

-(void)read{
    //读取 用户偏好设置 的数据
    NSUserDefaults *defautls = [NSUserDefaults standardUserDefaults];
    NSString *account = [defautls objectForKey:@"account"];
    NSString *password = [defautls objectForKey:@"password"];
    BOOL rememberPwd = [defautls boolForKey:@"rememberPwd"];
    BOOL autoLogin = [defautls boolForKey:@"autoLogin"];
    NSLog(@"%@ %@ %d %d",account,password,rememberPwd,autoLogin);
}

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
    //使用偏好设置保存数据

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

    //保存的数据
    [defaults setObject:@"zhangsan" forKey:@"account"];
    [defaults setObject:@"123" forKey:@"password"];
    [defaults setBool:YES forKey:@"autoLogin"];
    [defaults setBool:YES forKey:@"rememberPwd"];

    //调用同步的方法,把数据保存到沙盒文件
    [defaults synchronize];
}

时间: 2024-10-13 11:35:34

沙盒,plist文件,偏好设置的相关文章

IOS 学习之 iOS沙盒(sandbox) 介绍 沙盒机制 文件操作(一)

1.iOS沙盒机制 iOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等. 1.1.每个应用程序都有自己的存储空间 1.2.应用程序不能翻过自己的围墙去访问别的存储空间的内容 1.3.应用程序请求的数据都要通过权限检测,假如不符合条件的话,不会被放行.     通过这张图只能从表层上理解sandbox是一种安全体系,应用程序的所有操作都要通过这个体系来执行,其中核心内容是

删除沙盒中文件夹下所有文件

有时候需要在iOS系统里面,删除指定文件夹的内容,文件夹里面可能是文件,也可能包含有文件夹. 删除指定类型的文件.方法如下: NSString *extension = @"m4r"; NSFileManager *fileManager = [NSFileManager defaultManager]; NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,

iOS开发>学无止境 - 沙盒和文件操作(汇总)

关于沙盒和文件操作的文章写了几篇,在写的过程中加深了自己的记忆.今天来做一下汇总,算是对知识点的梳理. 文章梳理 1 iOS开发之沙盒机制(SandBox) 这是一篇关于沙盒的基础知识教程.简述沙盒的作用,对Documents.Library.tmp之间的区别做了介绍.通过两种方法打开沙盒,查看其中的内容. 2 iOS开发之获取沙盒路径 沙盒里的文件夹包括Documents.Library.tmp.文章介绍了如何获取Documents.Library.Caches.tmp的路径. 3 如何查看真

iOS开发之沙盒和文件操作(汇总)

关于沙盒和文件操作的文章写了几篇,在写的过程中加深了自己的记忆.今天来做一下汇总,算是对知识点的梳理. 文章梳理 1 iOS开发之沙盒机制(SandBox) 这是一篇关于沙盒的基础知识教程.简述沙盒的作用,对Documents.Library.tmp之间的区别做了介绍.通过两种方法打开沙盒,查看其中的内容. 2 iOS开发之获取沙盒路径 沙盒里的文件夹包括Documents.Library.tmp.文章介绍了如何获取Documents.Library.Caches.tmp的路径. 3 如何查看真

【学习ios之路:UI系列】iOS沙盒机制,文件读取,归档与反归档

1.IOS中的沙盒机制 IOS中的沙盒机制是一种安全体系,它规定了应用程序只能在为该应用创建的文件夹内读取文件,不可以访问其他地方的内容.所有的非代码文件都保存在这个地方,比如图片.声音.属性列表和文本文件等. 特点: 1.每个应用程序都在自己的沙盒内 2.不能随意跨越自己的沙盒去访问别的应用程序沙盒的内容 3.应用程序向外请求或接收数据都需要经过权限认证 每个沙盒含有3个文件夹:Documents, Library 和 tmp.Library包含Caches.Preferences目录.如下图

iOS应用沙盒:文件系统目录。

iOS不允许访问其他应用的应用沙盒(iOS8 已经开放访问) 沙盒里一般有几个文件目录: { 1.应用程序包:包含所有的资源文件和可执行文件 2.Documents:保存应用运行时生成的需要持久化的数据,iTunes会自动备份该目录.苹果建议将程序中建立的或在程序中浏览到的文件数据保存在该目录下,iTunes备份和恢复的时候会包括此目录. 3.tmp:保存应用运行时所需的临时数据,使用完毕后再将相应的文件从该目录删除,应用没有运行时,系统也有可能会清除该目录下的文件,iTunes不会同步该目录.

计算沙盒下文件夹内容大小 清空沙盒 文件 目录

1 +(float)fileSizeForDir:(NSString*)path//计算文件夹下文件的总大小 2 3 { 4 5 NSFileManager *fileManager = [[NSFileManager alloc] init]; 6 7 float size =0; 8 9 NSArray* array = [fileManager contentsOfDirectoryAtPath:path error:nil]; 10 11 for(int i = 0; i<[array

UI 沙盒机制 文件的读写操作

沙盒机制: 数据持久化的本质:将数据读成文件,存储在本地 沙盒机制:沙盒就是系统针对于每个应用程序在本地生成的文件夹(名字随机生成).对于不同的应用程序,不能访问其他应用程序沙盒内的内容.对于该应用内容起到保护作用. 沙盒内的文件夹: (1)Documents:用来存储长久保存的数据 (2)XXX.app: 应用程序的包,包含应用程序加载所需的所有资源,(readonly 只读,不可修改).平时使用的NSBundle就是该包. (3)Library: A: Caches:本地缓存,存储想暂时保存

数据存储之plist、偏好设置

// 偏好设置--------------------------------- // 存储基本类型数据 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults setObject:@"hello world!" forKey:@"testsavekey"]; // 强制保存,否则需要等系统保存,时间不定 [defaults synchronize]; // 取数据 NS