UIimage drawInRect不释放内存

时间:2015-10-02 03:29:04

标签: objective-c memory-management uiimage

我有以下代码用于获取新的UIImage。 它将被称为大约一百次。

for (int i = 0; i < [self.arrayImage count]; i++) {
    @autoreleasepool {
        UIImage *image = [self.arrayImage objectAtIndex:i];
        UIImage *newImage = [self getNewImage:image];
        // do something
    }
}

[self.arrayImage removeAllObjects];

// getNewImage方法

- (UIImage *)getNewImage:(UIImage *)image {
    UIImage *newImage = nil;

    UIGraphicsBeginImageContextWithOptions(image.size, NO, 0.0);
    CGRect rect = CGRectMake(0, 0, image.size.width, image.size.height);

    // do something

    [image drawInRect:rect];

    newImage = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();
    return newImage;
}

完成后,我发现内存没有被释放。 它需要近200MB的内存。 我有什么遗失的吗?

1 个答案:

答案 0 :(得分:0)

我发现为什么没有发布内存。 我的应用程序使用SDWebimage,self.arrayImage中的图像来自SDWebimage。 所以,只需致电[[SDImageCache sharedImageCache] clearMemory]即可发布这些图片。