標籤:
IOS學習(OC語言)知識點整理
一、IOS沙箱機制介紹
1)概念:每個ios應用都有自己的應用沙箱,應用沙箱就是檔案系統目錄,與其他應用放入檔案 系統隔離,ios系統不允許訪問
其他應用的應用沙箱,但在ios8中已經開放訪問(extension)
2)extension是ios8新開放的一種對幾個固定系統地區的拓展機制,它可以在一定程度上彌補ios的沙箱機制對應用間的通訊限制
3)應用沙箱一般包括以下幾個檔案目錄:
1、應用程式套件組合:包含所有資源檔和可執行檔
2、Documents:儲存應用運行時產生的需要持久化的資料,iTunes會自動備份該目錄
3、tmp:儲存應用運行時所需的臨時資料,使用完畢後再將相應的檔案從該目錄刪除,應用沒有運行時,系統也可能會自動清理
該目錄下的檔案,iTunes不會同步該目錄,iPhone重啟時該目錄下的檔案會丟失。
4、Libaray:儲存程式的預設設定和其他狀態資訊,iTunes會自動備份該目錄。
5、Libaray/Caches:存放快取檔案,iTunes不會備份此目錄,此目錄下檔案不會在應用退出刪除,一般存放體積比較大,
不是很重要的資源
6、Libaray/Preferences:儲存應用的所有喜好設定,ios的Settings(設定)應用會在該目錄中尋找應用的設定資訊,
iTunes會自動備份該目錄。
4)擷取應用的根目錄 例如:
1 NSString *sandBox=NSHomeDirectory();
5)擷取應用的Documents目錄 例如:
1 //NSSearchPathForDirectoriesInDomains 返回絕對路徑 2 //NSSearchPathForDirectoriesInDomains(要尋找的目錄, 是否是使用者主目錄, YES/NO 是否擷取全路徑); 3 NSArray *arry= NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 4 NSLog(@"%@",[arry lastObject]);
6)擷取應用的Libaray目錄 例如:
1 NSArray *arry2= NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);2 NSLog(@"%@",[arry2 lastObject]);
7)擷取應用的Caches目錄 例如:
1 NSArray *arry3= NSSearchPathForDirectoriesInDomains(NSCachesDirectory, 2 NSUserDomainMask, YES);3 NSLog(@"%@",[arry3 lastObject]);
8)擷取應用的Preferences 目錄,不能直接擷取只能自行拼接 例如:
1 NSArray *arry4= NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);2 NSString *path=[arry4 lastObject];3 path=[path stringByAppendingPathComponent:@"Preferences"];4 NSLog(@"%@",path);
9)擷取應用的tmp目錄 例如:
1 NSString *tmp=NSTemporaryDirectory();2 NSLog(@"%@",tmp);
10)寫入檔案到指定的應用目錄下 例如:
1 NSArray *arry4= NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);2 NSString *path=[arry4 lastObject]; 3 path=[path stringByAppendingPathComponent:@"Preferences/Test.txt"];4 NSString *str=@"abcdefg";5 [str writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];
IOS 階段學習第25天筆記(IOS沙箱機制介紹)