项目中在做带有缓存图像功能时遇到了极少情况下,图片变成了黑色,一度很受伤,因为不知道具体错误在哪里。
很偶然,在一次调试中遇到了,看到了报错,真是兴奋至极。
<Error>: ImageIO: CGImageReadCreateDataWithMappedFile 'open' failed '/var/mobile/Containers/Data/Application/AFF84A43-DD42-4DD6-8D5D-0F0FA99EB80C/Documents/HeadImages/20014/c9704e3733e6a634/head.png'
error = 2 (No such file or directory)
最终原因出现在:
imageWithContentsOfFile:
获取本地图片时,如果是读取的是项目中的素材,这是个好方法。但是如果是从本地缓存文件夹中读取的话,当本地图片被删除,会出现错误。
使用以下方法完美解决。
NSData *imageData = [NSDatadataWithContentsOfFile:finalPath];
UIImage * backImage = [UIImageimageWithData:imageData];