image
是UIImage
的一个实例。第一行执行没有问题,但第二行在运行时出现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
,因为我在循环中加载非常大的照片并且需要大量内存。
答案 0 :(得分:1)
所以,我明白了。问题是我发布了一个我不拥有的CGImageRef。
CGImageRef imageRef = [rep fullResolutionImage];
如果您通过致电CGImageRef
获得fullResolutionImage
,则表示您不拥有它。因此,您既不需要自己发布它。
CGImageRelease(imageRef);
删除最后一行为我解决了问题。