我有以下代码用于获取新的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的内存。 我有什么遗失的吗?
答案 0 :(得分:0)
我发现为什么没有发布内存。
我的应用程序使用SDWebimage,self.arrayImage中的图像来自SDWebimage。
所以,只需致电[[SDImageCache sharedImageCache] clearMemory]
即可发布这些图片。