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);

    

}

相關文章
相關標籤/搜索