IOS沙盒

一:沙盒的目录结构缓存

•默认状况下,每一个沙盒含有3个文件夹:Documents, Library 和 tmp。由于应用的沙盒机制,应用只能在几个目录下读写文件:
•(1)Documents:苹果建议将程序中创建的或在程序中浏览到的文件数据保存在该目录下,iTunes备份和恢复的时候会包括此目录
•(2)Library:存储程序的默认设置或其它状态信息;
•Library/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除
•Library/Preferences:存储应用偏好设置(NSUserDefaults存储位置)
•(3)tmp:提供一个即时建立临时文件的地方。
 
二:获取Documents子文件夹的方式
•目录获取方式:
•NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
•NSString *documentsDirectory=[paths objectAtIndex:0];
三:NSUserDefaults
•NSUserDefaults适合存储轻量级的本地数据,一些简单的数据如用户名,密码,是否登陆,是否第一次打开应用等;
•NSUserDefaults支持的数据类型有:NSNumber(NSInteger、float、double),NSString,NSDate,NSArray,NSDictionary,BOOL.,仅限于系统类型;
•用户自定义类型对象是不能使用NSUserDefaults存储
•NSUserDefaults是一个单例,在整个程序中只有一个实例对象;
•NSUserDefaults保存的数据在沙盒的“Library/Preferences”中;
 
1:NSUserDefaults保存数据方法
•NSUserDefaults是基于键值操做的;
•保存密码的代码以下:
•//将NSString 对象存储到 NSUserDefaults 中
•    NSString *passWord = @"1234567";
•    NSUserDefaults *user = [NSUserDefaults standardUserDefaults];
•    [user setObject:passWord forKey:@"userPassWord"];
 
相关代码

- (void)viewDidLoad {spa

    [super viewDidLoad];对象

    

    NSString *password = @"12412341";io

    NSUserDefaults *user = [NSUserDefaults standardUserDefaults];class

    [user setObject:password forKey:@"userPassword"];登录

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES);object

    

    NSString *documentsDirectory = [paths objectAtIndex:0];数据类型

    NSLog(@"%@",documentsDirectory);float

}程序

2,NSUserDefaults读数据方法
•将数据取出也很简单,只须要取出key 对应的值就行了,代码以下:
•NSUserDefaults *user=[NSUserDefaults standardUserDefaults];
•NSString *passWord = [ user objectForKey:@“userPassWord"];
•注意:
•对相同的Key赋值约等于一次覆盖,要保证每个Key的惟一性
•将数据取出也很简单,只须要取出key 对应的值就行了,代码以下:
•NSUserDefaults *user=[NSUserDefaults standardUserDefaults];
•NSString *passWord = [ user objectForKey:@“userPassWord"];
•注意:
•对相同的Key赋值约等于一次覆盖,要保证每个Key的惟一性
 
代码

- (void)viewDidLoad {

    [super viewDidLoad];

    NSUserDefaults *user = [NSUserDefaults standardUserDefaults];

    NSString *password = [user objectForKey:@"userPassword"];

    NSLog(@"%@",password);

    

}

相关文章
相关标签/搜索