標籤:
歸檔:用某種格式儲存某個對象,又稱持久化。
1XML 屬性列表plist歸檔(持久化)
2Preference(喜好設定)
3NSKeyedArchiver歸檔
4SQLite3
5Core Data(操縱SQLLite3)
應用沙箱
一、iOS沙箱機制
iOS的應用只能訪問為該應用建立的地區,不可訪問其他地區,應用的其他非代碼檔案都存在此目錄下,包括圖片,屬性檔案plist,bundle,nib檔案等,這塊地區稱之為沙箱(sandBox)。
- 每個應用都有屬於自己的儲存空間,即沙箱
- 應用只能訪問自己的沙箱,不可訪問其他地區
- 如果應用需要進行檔案操作,則必須將檔案存放在沙箱中,尤其是資料庫檔案,在電腦上操作時,可以去訪問,但是如果要裝在真機上可以使用,必須將資料庫檔案拷貝至沙箱中。
二、開啟沙箱路徑
1、如果不知道沙箱路徑,可以在自己的應用中列印其路徑。(自己虛擬機器 Xcode6.2 ios7.1)
1 NSLog(@"沙箱路徑:%@",NSHomeDirectory());
會得到列印結果*為字母或數字,即為沙箱的路徑
1 2015-06-19 23:10:37.692 私人通訊錄[31250:1282190] 沙箱路徑:/Users/zjj/Library/Developer/CoreSimulator/Devices/7CE3FB7E-052B-4B1D-8783-BEAFB45A3558/data/Containers/Data/Application/15B4C992-A4C6-4005-BF76-077EA5BBE9FC
路徑為:/Users/zjj/Library/Developer/CoreSimulator/Devices
2、開啟Finder,選擇前往-前往檔案夾(或選擇快速鍵command+shift+G)輸入列印出來的路徑即可
三、目錄結構
沙箱預設情況下有三個目錄檔案夾documents,Library,tmp及應用的App檔案,只可在相應的檔案夾中進行操作
- AppName.app 應用程式的程式包目錄。由於應用程式必須經過簽名,所以不能在運行時對這個目錄中的內容進行修改,否則會導致應用程式無法啟動。
快取檔案,還有記錄檔最好也放在這個目錄。iTunes 同步時不會備份該目錄。
Library/Preferences 儲存應用程式的喜好設定檔案(使用 NSUserDefaults 類設定時建立,不應該手動建立)。
- tmp:儲存應用運行時所需要的臨時資料,iphone 重啟時,會清除該目錄下所有檔案。
在Xcode 6中iPhone模擬器的位置已經發生了變化。與此同時,在iOS 8 release Note中有提到,app的沙箱結構已經發生了改變,現在它被劃分成了三個容器,Bundle容器、Data容器、iCloud容器。iOS 8 app沙箱目錄結構如:
ios應用資料存放區的常用方式 ios7.1應用沙箱