ios – 核心图形栅格数据不从内存释放

所以我让我的应用程序拍摄屏幕截图并将其保存到相册中,代码如下…
- (void) save {
        UIGraphicsBeginImageContextWithOptions(self.view.bounds.size,self.view.opaque,0.0 );
        [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
        UIImage *theImage = UIGraphicsGetimageFromCurrentimageContext();
        UIGraphicsEndImageContext();
        UIImageWritetoSavedPhotosAlbum(theImage,nil,NULL,NULL);
        NSData*theImageData=UIImageJPEGRepresentation(theImage,1.0 );
        [theImageData writetoFile:@"image.jpeg" atomically:YES];
    }

如何释放由持有屏幕截图栅格数据的Core Graphics分配的内存?

我的项目是使用ARC进行内存管理.在测试应用程序如何分配内存时,我注意到在屏幕截图后内存没有被释放,导致应用程序随着时间的推移而变得迟缓. Instruments中的“Allocation Summary”告诉我数据类别是“CG栅格数据”,负责调用者是’CGDataProviderCreatWithcopyOfData’.

CFRelease()中是否有解决方案; ?

我的第一个应用程序,所以我很漂亮,我已经浏览了互联网,尝试解决问题,没有运气…

解决方法

您可以尝试将方法内容包装到@autorelease块中.
@autoreleasepool {
...
}

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...