NSData与NSString之间的base64转换

效果图

代码示例:

// NSData转NSString-base64
UIImage *image = [UIImage imageNamed:@"01"];
NSData *data = UIImagePNGRepresentation(image);
self.base64Image = [data base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];

base64 = iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAAAXNSR0IArs4c6QAA
ABxpRE9UAAAAAgAAAAAAAACAAAAAKAAAAIAAAACAAABwJTIJYZEAAEAASURBVHgB
7H0HWJVXuu49954z95wnZ2bu9JOZFGOPBSQ0kSIqYu/BRgQLo2BBBY0CGsFCEJEA……

// NSString-base64转NSData,并保存在本地
NSArray *Paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *path = [Paths objectAtIndex:0];
path = [path stringByAppendingPathComponent:@"image"];
[[NSFileManager defaultManager] createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:NULL];
NSString *fileName = [NSString stringWithFormat:@"%@%@", @(arc4random() % 1000 + 1), @".png"];
self.filePath = [path stringByAppendingPathComponent:fileName];

// 保存 
NSData *data = [[NSData alloc] initWithBase64EncodedString:self.base64Image options:NSDataBase64DecodingIgnoreUnknownCharacters];
[data writeToFile:self.filePath atomically:NO];

filePath = /Users/zhangshaoyu/Library/Developer/CoreSimulator/Devices/4C5050F0-FFE6-4185-AD76-C54B797596BF/data/Containers/Data/Application/32DBEEB6-5F60-4FCC-8909-48302776141F/Documents/image/29.png

// 读取本地文件
UIImage *image = [UIImage imageWithContentsOfFile:self.filePath];
self.footerView.image = image;
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • PLEASE READ THE FOLLOWING APPLE DEVELOPER PROGRAM LICENSE...
    念念不忘的阅读 14,592评论 5 6
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,647评论 2 45
  • 首先如果遇到应用卡顿或者因为内存占用过多时一般使用Instruments里的来进行检测。但对于复杂情况可能就需要用...
    攻克乃还_阅读 6,104评论 0 7
  • "妈,我要去整容" "你弄啥呢" "我得把鼻子垫高点,内双割成外双,打个瘦脸针" "你现在挺好的" "真的吗" "...
    南逢酒馆阅读 1,670评论 0 0
  • 日子就这么过着 生活也就这么过着 一切似乎看着很在正轨上 其实你还差很多 没有上帝 什么都做不到
    小小的泡泡糖阅读 1,280评论 0 0