我试图从本地内容实现show image但由于某种原因,内存不会被释放。
@autoreleasepool {
ALAssetRepresentation *rep = [myasset defaultRepresentation];
CGImageRef iref = [rep fullResolutionImage];
UIImage *largeimage = [UIImage imageWithCGImage:iref scale:[UIScreen mainScreen].scale orientation:(UIImageOrientation)rep.orientation];
CFRelease(iref);
self.imageView.image = largeimage;
largeimage = nil;
}
正如所建议的,我用过
CGImageRelease(imageRef);
但我仍然有内存泄漏。之后我用
包装代码@autoreleasepool {}
阻止,但这也无法解决我的问题。
我该怎么办?
答案 0 :(得分:2)
我认为问题出在您将图像分配到图像视图时。您可以在将图像分配给图像视图之前尝试调整图像大小吗?
使用此方法
- (UIImage *)resizeImage:(UIImage *)sourceImage toSize:(CGSize)newSize
{
UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
[sourceImage drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}