泄漏在哪里?

时间:2010-06-11 16:23:05

标签: iphone uikit core-graphics

UIGraphicsBeginImageContext(targetSize); //instruments show here a leak 128bytes

CGRect thumbnailRect = CGRectZero;

thumbnailRect.origin = thumbnailPoint;
thumbnailRect.size.width  = scaledWidth;
thumbnailRect.size.height = scaledHeight;

[sourceImage drawInRect:thumbnailRect];

newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

嗨,我正在尝试缩放UIImage,所以我用

加载它
[UIImage imageNamed:@"myImage.png"];

然后将其传递给方法。在那个方法中,我有上面的代码调整我的图像大小,在方法结束时我有一个

return newImage;

仪器显示我在线泄漏

UIGraphicsBeginImageContext(targetSize); //instruments show here a leak 128bytes

我做错了什么?泄漏究竟在哪里?

3 个答案:

答案 0 :(得分:1)

仪器会告诉你第一次分配内存的位置;这显然是在UIGraphicsBeginImageContext()中。我想双击泄漏(或左右)将列出所有保留/自动释放/释放;看看其中一个。

答案 1 :(得分:0)

你似乎没有做错任何事;它可能是UIGraphicsBeginImageContext方法中的错误。虽然128字节是微不足道的 - 除非你创建这个缩略图很多次,否则你可能不需要担心它。

答案 2 :(得分:-2)

根据the docs,UIGraphicsBeginImageContext的参数应该是从UIGraphicsGetImageFromCurrentImageContext()返回的对象的实际大小。你收到这样一个对象之前为什么要打电话呢?