Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在为句子调整UIImage的大小时释放内存_Ios_Objective C_Uiimage_Autorelease_Cgimage - Fatal编程技术网

Ios 在为句子调整UIImage的大小时释放内存

Ios 在为句子调整UIImage的大小时释放内存,ios,objective-c,uiimage,autorelease,cgimage,Ios,Objective C,Uiimage,Autorelease,Cgimage,我制作了一个调整图像大小的方法。当它调整图像阵列中图像的大小时,它会变成过多的内存(例如200MB~300MB),尤其是当图像是高质量图像(iPhone6/6s)时。我的项目正在进行中。如果我想做到这一点,我必须如何编写代码?请教我如何“立即”或“强制”释放“trimmedImage”实例 我通过仪器发现这一点(CGImage消耗了大量内存)。我尝试使用@autoreleasepool,trimmedImage=nil;和[trimmedImage释放];,但它们也工作不好(没有释放trimme

我制作了一个调整图像大小的方法。当它调整图像阵列中图像的大小时,它会变成过多的内存(例如200MB~300MB),尤其是当图像是高质量图像(iPhone6/6s)时。我的项目正在进行中。如果我想做到这一点,我必须如何编写代码?请教我如何“立即”或“强制”释放“trimmedImage”实例

我通过仪器发现这一点(CGImage消耗了大量内存)。我尝试使用@autoreleasepool,trimmedImage=nil;和[trimmedImage释放];,但它们也工作不好(没有释放trimmedImage内存)

+(void)cropImages:(NSArray*)图像{
对于(_弱UIImage*图像中的图像){
UIImage*resizedImage=[self-CropreTimage:image];
}
}
+(UIImage*)CropreTimage:(UIImage*)图像{
float w=image.size.width;
浮动h=图像大小高度;
CGRect rect;

如果(h您的
croprestimage:
方法中存在严重内存泄漏。您永远不会释放
cgImage

替换此行:

cgImage = nil;
与:

ARC不适用于任何C函数和相关引用


我还建议您在项目上运行Analyze。在Xcode中,转到项目,然后进行分析。

非常感谢!这非常重要。我用您的代码(cgimaRelease)替换了我的代码(cgImage=nil)。但这并不会减少我的应用程序的内存。UIImage{3000,2002}for-语句roop 1→ 98.9 MB roop 2→ 148.1 MB roop 3→ 171.4 MB…roop 6→ 280 MB(有时崩溃)CGImageRelease会立即释放内存吗?我想减少内存。你还有其他好主意吗?
cgImage = nil;
CGImageRelease(cgImage);