Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios ImageIO:CGImageRead#u mapData';打开';失败错误=2_Ios_Uibutton_Uiimage - Fatal编程技术网

Ios ImageIO:CGImageRead#u mapData';打开';失败错误=2

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

在我的应用程序中,我从磁盘加载图像以用作UIBUtton缩略图

要获取图像,我将覆盖图形对象的thumbnailImage属性的getter,以从磁盘加载图像:

- (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;}];}
您解决了这个问题吗?我正在处理这个问题。