你好,歡迎來到IOS教程網

 Ios教程網 >> IOS訊息 >> 關於IOS >> iOS沙盒機制

iOS沙盒機制

編輯:關於IOS

第一、什麼是沙盒

IOS應用程序只能在為該改程序創建的文件系統中讀取文件,不可以去其它地方訪問,此區域被成為沙盒
第二、保存內容
所有的非代碼文件都要保存在此,例如圖像,圖標,聲音,映像,屬性列表,文本文件等
第三、作用
iOS沙盒為程序運行提供了很好的安全保障
第四、目錄
1、Documents目錄:這個目錄用於存儲用戶數據或其它應該定期備份的信息,蘋果建議將程序中建立的或在程序中浏覽到的文件數據保存在該目錄下,iTunes備份和恢復的時候會包括此目錄。
2、AppName.app 目錄:這是應用程序的程序包目錄,包含應用程序的本身。由於應用程序必須經過簽名,所以您在運行時不能對這個目錄中的內容進行修改,否則可能會使應用程序無法啟動。
3、Library目錄:這個目錄下有兩個子目錄:Caches 和 Preferences
Preferences 目錄包含應用程序的偏好設置文件。您不應該直接創建偏好設置文件,而是應該使用NSUserDefaults類來取得和設置應用程序的偏好
Caches 目錄用於存放應用程序專用的支持文件,保存應用程序再次啟動過程中需要的信息。
4、tmp 目錄:這個目錄用於存放臨時文件,保存應用程序再次啟動過程中不需要的信息,重啟後清空
itues和iphone同步時,備份所有的Document和library文件
第五、獲取不同目錄的方法
1、獲取document目錄
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
2、獲取cache目錄
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString* cachesDirectory = [paths objectAtIndex:0];
3、獲取tmp目錄路徑的方法:
NSString *tmpDir = NSTemporaryDirectory();
4、獲取應用程序程序包中資源文件路徑的方法:
//例如獲取程序包中一個圖片資源(apple.png)路徑的方法:
NSString *imagePath = [[NSBundlemainBundle]pathForResource:@"apple"ofType:@"png"];
第六、文件I/O操作
1,將數據寫到Documents目錄:
- (BOOL)writeApplicationData:(NSData*)data toFile:(NSString*)fileName {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *docDir = [paths objectAtIndex:0];
if(!docDir) {
NSLog(@"Documents directory not found!");
return NO;
}
NSString *filePath = [docDir stringByAppendingPathComponent:fileName];
return [data writeToFile:filePath atomically:YES];
}
2,從Documents目錄讀取數據:
- (NSData *)applicationDataFromFile:(NSString *)fileName {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *docDir = [paths objectAtIndex:0];
NSString *filePath = [docDir stringByAppendingPathComponent:fileName];
NSData *data = [[[NSData alloc]initWithContentsOfFile:filePath]autorelease];
return data;
}

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved