一、首先創建一個類文件
1.在.h文件添加以下方法:
/*** 存儲圖片到本地*/
+(void)storeImage:(NSData *)imageData withImageName:(NSString *)ImageName;
/*** 獲取本地圖片*/
+(NSData *)getImageWithImageName:(NSString *)ImageName;
/*** 刪除本地圖片*/
+(void)deleteImageWithImageName:(NSString *)imageName;
2. 在 .m文件分別實現h文件的三個方法
第一個方法:存儲圖片到本地
/***圖片存儲到本地Document目錄下,ImageName是圖片的唯一標識符*/
+(void)storeImage:(NSData *)imageData withImageName:(NSString *)ImageName {
????????????if (imageData && ImageName.length > 0 && ImageName) {
????????????????????????????NSFileManager *fileManage=[NSFileManager defaultManager];
????????????????????????????//把圖片存儲在沙盒中,首先獲取沙盒路徑
????????????????????????????NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
????????????????????????????NSString *documentsDirectory=[paths objectAtIndex:0];//Documents目錄
????????????????????????????//在Documents下面創建一個Image的文件夾的路徑
????????????????????????????NSString *createPath=[NSString stringWithFormat:@"%@/Images",documentsDirectory];
????????????????????????????//沒有這個文件夾的話就創建這個文件夾
????????????????????????????if(![fileManage fileExistsAtPath:createPath]){
????????????????????????????[fileManage createDirectoryAtPath:createPath withIntermediateDirectories:YES attributes:nil error:nil];
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?NSLog(@"已創建文件夾");
????????????????????}
????????????//把數據以.png的形式存儲在沙盒中,路徑為可變路徑
????????????NSString *filePath = [NSString stringWithFormat:@"%@/%@.png",createPath,ImageName];
????????????[[NSFileManager defaultManager] createFileAtPath:filePath contents:imageData attributes:nil];
????????}
}
第二個方法:獲取本地圖片
+(NSData *)getImageWithImageName:(NSString *)ImageName{
????????NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
????????NSString *documentsDirectory=[paths objectAtIndex:0];//Documents目錄
????????NSString *filePath = [NSString stringWithFormat:@"%@/Images/%@.png",documentsDirectory,ImageName];
????????NSFileManager *fileManager = [NSFileManager defaultManager];
????????NSData *imageData;
????????//如果存在存儲圖片的文件,則根據路徑取出圖片
????????if ([fileManager fileExistsAtPath:filePath]) {
????????????????imageData = [NSData dataWithContentsOfFile:filePath];
????????}
????????return imageData;
}
第三個方法:刪除本地圖片
+(void)deleteImageWithImageName:(NSString *)imageName{
????????NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
????????NSString *documentsDirectory=[paths objectAtIndex:0];//Documents目錄
????????NSString *filePath = [NSString stringWithFormat:@"%@/Images/%@.png",documentsDirectory,imageName];
????????NSFileManager *fileManager = [NSFileManager defaultManager];
????????[fileManager removeItemAtPath:filePath error:nil];
}