Ios ImageIO:CGImageRead#u mapData';打开';失败错误=2
在我的应用程序中,我从磁盘加载图像以用作UIBUtton缩略图 要获取图像,我将覆盖图形对象的thumbnailImage属性的getter,以从磁盘加载图像:Ios ImageIO:CGImageRead#u mapData';打开';失败错误=2,ios,uibutton,uiimage,Ios,Uibutton,Uiimage,在我的应用程序中,我从磁盘加载图像以用作UIBUtton缩略图 要获取图像,我将覆盖图形对象的thumbnailImage属性的getter,以从磁盘加载图像: - (UIImage *)thumbnailImage { if (_thumbnailImage) { return _thumbnailImage; } NSString *thumbnailImagePath = [[self getFullPathWithDataFilename:NO
- (UIImage *)thumbnailImage {
if (_thumbnailImage) {
return _thumbnailImage;
}
NSString *thumbnailImagePath = [[self getFullPathWithDataFilename:NO] stringByAppendingPathComponent:kThumbImageFileName];
if ([[NSFileManager defaultManager] fileExistsAtPath:thumbnailImagePath]) {
_thumbnailImage = [[UIImage imageWithContentsOfFile:thumbnailImagePath] retain];
return _thumbnailImage;
}
return nil;
}
然后,我将缩略图加载到每个按钮中,如下所示:
[button setImage:drawing.thumbnailImage forState:UIControlStateNormal];
在这一点之后,按钮被添加到视图中,并且工作正常。但是,如果移动创建缩略图图像的文件,单击按钮时会出现以下错误(两次):
ImageIO: CGImageRead_mapData 'open' failed '/var/mobile/Applications/F07CB571-4AAA-47E2-B3EB-3D4523AE7B51/Library/root.stack/C1199105-062F-40A3-B56C-3BB1106AC003.drawing/thumbImage.png'
error = 2 (No such file or directory)
这不会使应用程序崩溃,缩略图仍然显示,但是我想澄清这个问题,这样就不会抛出错误
我认为UIImage挂起了对创建它的文件的引用。我也尝试过中断此操作,但无法识别导致错误的任何特定代码行。thumbnailImage的定义和属性是什么?您的@synthesis是
thumbnailImage=\u thumbnailImage
?@属性(非原子,强)UIImage*thumbnailImage
和yes@synthesis thumbnailImage=\u thumbnailImage代码>在这种情况下不需要retain,分配值则不需要retain。该按钮的操作方法中会发生什么情况?该按钮在UIView中显示图形对象的完整图像:if(self.drawingView.hidden){[self.drawingView setImage:drawing.fullImage];self.drawingView.hidden=NO;self.drawingView.alpha=0.0;[UIView animateWithDuration:0.25动画:^{self.drawingView.alpha=1.0;}];}
您解决了这个问题吗?我正在处理这个问题。