【问题标题】:EXC_BAD_ACCESS on accessing UIImage's size propertyEXC_BAD_ACCESS 访问 UIImage 的 size 属性
【发布时间】:2014-10-16 14:56:15
【问题描述】:

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

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

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

您能帮我理解它有什么问题和/或我可能缺少什么吗?

在运行 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,因为我在循环中加载非常大的照片,这会占用大量内存。

【问题讨论】:

  • 对我来说很好,刚刚用 UIImage *image = [[UIImage alloc] init] 检查了你的代码,向我们提供你的完整代码和图像实例初始化

标签: ios objective-c uiimage


【解决方案1】:

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

CGImageRef imageRef = [rep fullResolutionImage];

如果您通过调用fullResolutionImage 获得CGImageRef,则您不拥有它。因此,您也不需要自己发布它。

CGImageRelease(imageRef);

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-28
    相关资源
    最近更新 更多