iOS-沙盒相關

數據本地化:把拿到的數據,存到應用的沙盒裏面[方式1:直接寫入本地   方式2:sqlite(數據庫);CoreData;NSUserDefaultes(屬性列表); (歸結檔不算)]sql

 沙盒:每一個iOS應用程序都會爲本身建立一個文件系統目錄(文件夾),這個獨立,封閉,安全的空間叫作沙盒(能夠手動的自動的存入一些的東西)數據庫

獨立:每個應用程序擁有一個應用程序沙盒,不可能出現兩個程序使用一個是沙盒設計模式

封閉:每個沙盒只有本身程序能夠去使用;數組

安全:沙盒有刪除的實效緩存

Documents :安全

1:永遠不會刪除重要的文件放在這裏,iTunes程序備份時同時備份document裏面內容,不要在裏面放太大的文件若是加入了音視頻較大文件審覈時候被拒,只有它在應用程序刪除時候刪除框架

Library:編碼

1 :Caches:緩存文件夾存儲緩存文件iTunes不會備份此目錄(適合存放體積大不重要的數據,一些不須要備份的數據)atom

緩存:當用戶對某一個URL作請求操做的時候,這個URL裏面的東西會保存在主機裏面的某個位置 2:preferences:保存用戶的全部偏好設置,iOS settings(設置)應用會在目錄中查找應用的設置信息,iTunes會自動備份該目錄通常不要在這個文件中建立偏好設置文件,通常使用NSUserDefaults來獲取和設置應用偏好spa

tmp:保存應用運行的臨時數據,使用完成後從該目錄刪除,程序沒有運行時候系統也可能刪除該目錄文件,iTunes不會備份該文件夾文件,iPhone重啓時候該目錄文件也會刪除

如何獲取文件夾的地址:

第一種方式:經過NSSearch搜索文件夾得地址,可是不能獲取tmp文件夾的地址,其餘的均可以獲取到.

第二種方式:首現獲取沙盒主路經的地址,而後拼接上想要去的文件夾的地址

傳值方式: 1 :block 2:代理 3:屬性 4:單例 5:通知中心 6:數據本地化

設計模式(實現方式) 1:單例 2:代理 3:Target-Action

MVC :框架設計方式

 存入本地過程 1:找到要存的路徑 2:寫出要存的數據 3:建立新文件 4:存儲數據 //NSDocumentDirectory主要獲取Document文件的地址

//NSUserDomainMask 用戶主目錄

//第三個參數表示  展開"~"的地址 設置爲YES  爲完整的路徑 //NSSearchPathForDirectoriesInDomains獲取的是一個數組,數組只有一個元素,因此直接獲取objectIndex:0

//第一種獲取文件夾地址的方式 NSString*documentPathStr=[NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES)objectAtIndex:0];

//    NSLog(@"%@",documentPathStr);

//第二種  獲取documents文件夾的路徑

//第一步:獲取沙盒主路徑地址 NSString*homePathStr=NSHomeDirectory(); NSLog(@"%@",homePathStr);

//第二步:在沙盒的主路徑後面拼接documents拼接出documents文件夾的路徑 NSString*documentPathStr=[homePathStrstringByAppendingPathComponent:@"Library/Caches"]; NSLog(@"%@",documentPathStr);

//獲取tmp文件夾的路徑 NSString*tmpPathStr=NSTemporaryDirectory(); NSLog(@"tmpPathStr====%@",tmpPathStr);

簡單數據本地化: //第1步:我要知道存到哪裏,因此我須要一個文件夾路徑 NSString*documentPathStr = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES)objectAtIndex:0];

NSLog(@"%@",documentPathStr);

//第2步:我要知道存什麼:建立一條數據

NSString*name =@"Kevin";

//第3步:我要知道存的東西到底放在哪裏,因此建立一個路徑路徑就是存數據文件 NSString*strPath = [documentPathStrstringByAppendingPathComponent:@"str.txt"]; //atomically:yes  忽然沒電時候保存數據來點繼續保存

//encoding :編碼方式

//第 4 步: 準備好開始寫入

// [str writeToFile:strPath atomically:YES encoding:NSUTF8StringEncoding error:nil];

//根據imageNamed獲取圖片  會在緩存裏面存一份 下次在獲取同名圖片直接在緩存裏面取

//優勢: 快 只有第一次時候稍微慢一些可是以後再去獲取的話很快

//缺點: 會浪費內存 若是隻是用一次的話這塊內存就廢掉了

//ContentsOfFile:  獲取圖片每次都會根據路徑去拿不會佔用內存,若是隻是用一次的話,推薦用ContentsOfFile; 

相關文章
相關標籤/搜索