iOS - 存储图片到本地

一、首先创建一个类文件

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];

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 218.241.181.202 wxhl60 123456 192.168.10.253 wxhl66 wxhl6...
    CYC666阅读 1,537评论 0 6
  • 一、iOS中的沙盒机制 iOS应用程序只能对自己创建的文件系统读取文件,这个独立、封闭、安全的空间,叫做沙盒。它一...
    1d5cb7cff98d阅读 1,847评论 0 0
  • 一、iOS中的沙盒机制 •iOS应用程序只能对自己创建的文件系统读取文件,这个独立、封闭、安全的空间,叫做沙盒。它...
    舒城8中阅读 2,510评论 0 6
  • 一、iOS中的沙盒机制 iOS应用程序只能对自己创建的文件系统读取文件,这个独立、封闭、安全的空间,叫做沙盒。它一...
    莫许阅读 1,828评论 0 0
  • 一、iOS中的沙盒机制 iOS应用程序只能对自己创建的文件系统读取文件,这个独立、封闭、安全的空间,叫做沙盒。它一...
    绚雨蓝了个枫阅读 4,292评论 0 2

友情链接更多精彩内容