EXC_BAD_ACCESS访问UIImage的size属性

时间:2014-10-16 14:56:16

标签: ios objective-c uiimage

imageUIImage的一个实例。第一行执行没有问题,但第二行在运行时出现EXC_BAD_ACCESS错误。

NSLog(@"SCALE: %f", image.scale);
NSLog(@"TEST: %@", NSStringFromCGSize(image.size));

我可以通过鼠标悬停来查看Xcode中size属性的值。

enter image description here

你能帮助我理解它的错误和/或我可能缺少的东西吗?

在运行iOS 8的设备和模拟器上测试。

UPD:这是我创建图片的方式:

ALAssetRepresentation *rep = [asset defaultRepresentation];
CGFloat scale  = 1.0f;

CGImageRef imageRef = [rep fullResolutionImage];
UIImage *image = [UIImage imageWithCGImage:imageRef scale:scale orientation:(UIImageOrientation)rep.orientation];

CGImageRelease(imageRef);

我只是想删除最后一行CGImageRelease(imageRef);,似乎解决了这个问题。但是我确实需要释放CGImageRef,因为我在循环中加载非常大的照片并且需要大量内存。

1 个答案:

答案 0 :(得分:1)

所以,我明白了。问题是我发布了一个我不拥有的CGImageRef。

CGImageRef imageRef = [rep fullResolutionImage];

如果您通过致电CGImageRef获得fullResolutionImage,则表示您不拥有它。因此,您既不需要自己发布它。

CGImageRelease(imageRef);

删除最后一行为我解决了问题。