app數據存儲路徑獲取方法和沙盒結構分析



app安裝到蘋果手機上,會產生兩個路徑 ,分別為.app(應用程序安裝目錄)和應用程序的沙盒(應用程序保存數據的目錄,如應用配置信息、緩存的文件等)。

一、路徑獲取方法。

通過NSBundle獲取路徑獲取.app文件路徑

 //  bundle 路徑
    NSString *bundlePath = [NSBundle mainBundle].bundlePath;
    NSLog(@"%@",bundlePath);

 

通過NSHomeDirectory獲取沙盒路徑

 //沙盒的路徑
    NSString *shaPath = NSHomeDirectory();
    NSLog(@"%@",shaPath);

 

  •   通過輸出欄信息前往/Users/xiejiwei/Library/Developer/CoreSimulator/Devices/4512C44C-3610-48BE-B29D-B05913DE11A7/data/Containers/Data/Application/5BB3D373-E89F-4D71-AD47-7A640DCAFF4E文件夾可以
  • 得到一個文件夾,內部包含Document,library(內部包含Caches和Preferences文件),tmp三個文件夾,獲取文件夾路徑的方法如下。
  • 我們可以通過下面三種方法獲取Document路徑。
 1 //1. 不能確定 加不加 斜杠
 2    NSString *shaPath = NSHomeDirectory(); 
 3    NSString *docPath = [shaPath stringByAppendingString:@"/Documents"];
 4    NSLog(@"%@",docPath);
 5 //2. 自動判斷是否 有斜杠 如果沒有自動添加
 6     NSString *docPath = [shaPath stringByAppendingPathComponent:@"Documents"];
 7     NSLog(@"%@",docPath);
 8 //3. 自動獲取 路徑
 9  NSString *docPath=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject];
10  NSLog(@"%@",docPath);

 

//獲取Library路徑
NSString *libPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) lastObject];
  NSLog(@"%@",libPath);
//獲取Tmp路徑 
 NSString *tmpPath = NSTemporaryDirectory();
 NSLog(@"%@",tmpPath);
//獲取Cache路徑
NSString *cachePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
 NSLog(@"%@",cachePath);

 

二、app中保存數據的分類

目前常用的5中存儲方法

•Preference(偏好設置)
–本質還是通過“plist”來存儲數據,但是使用簡單(無序關注文件、文件夾路徑和名稱)。
•NSKeyedArchiver歸檔(NSCoding)
–把任何對象,直接保存為文件的方式。
•SQLite3
–當非常大量的數據存儲時使用。
•CoreData
–就是對SQLite的封裝。
三、應用沙盒結構分析
•每個iOS應用都有自己的應用沙盒(應用沙盒就是應用的文件夾),與其他文件系統隔離。應用必須呆在自己的沙盒里,其他應用不能訪問該沙盒。
•應用沙盒的文件系統目錄如下:
Documents:保存應用運行時生成的需要持久化的數據,iTunes同步設備時會備份該目錄。例如,游戲應用可將游戲存檔保存在該目錄。保存相對重要的數據。

Tmp:保存應用運行時所需的臨時數據,使用完畢后再將相應的文件從該目錄刪除。應用沒有運行時,系統也可能會清除該目錄下的文件。iTunes同步設備時不會備份該目錄。保存不重要的並且大的數據。

Library/Caches:保存應用運行時生成的需要持久化的數據,iTunes同步設備時不會備份該目錄。一般存儲體積大、不需要備份的非重要數據

Library/Preference:保存應用的所有偏好設置,iOS的Settings(設置)應用會在該目錄中查找應用的設置信息。iTunes同步設備時會備份該目錄。該目錄由系統管理, 無需我們來管理。通常用來存儲一些基本的軟件配置信息, 比如記住密碼、自動登錄等。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM