gpt4 book ai didi

ios - Core Graphics iOS 中的内存增加/泄漏

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:02:31 24 4
gpt4 key购买 nike

我有一个带有自定义 UIView 的 UIViewController。此自定义 UIView 使用 drawRect 和 CoreGraphics 绘制 pdf。多次加载 UIViewController (pdfViewController):

[self.revealViewController setFrontViewController:[[pdfViewController alloc] initWithPDF:pdfs[indexPath.row] uiColor:[self colorWithRGB:colors[indexPath.row][0]]]];

自定义 UIView 如下所示:

- (void)drawRect:(CGRect)rect
{
[super drawRect:rect];

NSString *documentsDirectory = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
NSURL *url = [NSURL fileURLWithPath:[documentsDirectory stringByAppendingPathComponent:PDF]];

// Get GraphicsContext
CGContextRef ctx = UIGraphicsGetCurrentContext();

// Open PDF Document
CGPDFDocumentRef pdfDocument = CGPDFDocumentCreateWithURL((CFURLRef)url);
CGPDFPageRef pdfPage = CGPDFDocumentGetPage(pdfDocument, Page);

// Get PDF Dimensions
CGRect cropRect = CGPDFPageGetBoxRect(pdfPage, kCGPDFCropBox);

// Set white background
CGContextSetRGBFillColor(ctx, 255.0, 255.0, 255.0, 1.0);
CGContextFillRect(ctx, rect);

// Flip Coordinates and reset Origin
CGContextGetCTM(ctx);
CGContextScaleCTM(ctx, 1, -1);
CGContextTranslateCTM(ctx, 0, -rect.size.height);

// Set render quality
CGContextSetInterpolationQuality(ctx, kCGInterpolationHigh);

// Scale Matrix
CGContextScaleCTM(ctx, rect.size.height/cropRect.size.height,rect.size.height/cropRect.size.height);
CGContextTranslateCTM(ctx, -cropRect.origin.x, -cropRect.origin.y);

// Draw PDF
CGContextDrawPDFPage(ctx, pdfPage);

CGPDFPageRelease(pdfPage);
CGPDFDocumentRelease(pdfDocument);

}

内存不会被释放,每次加载 UIView 时,UIViewController 内存都会增加 ca。 6MB :/

这是内存使用情况的图像:enter image description here

任何帮助将不胜感激,随时询问更多信息

更新:drawRect 中的 UIViews 手册内存管理非常好。由于(强)委托(delegate)引用,UIView 本身没有释放自己。再次感谢大家的回答

最佳答案

听起来 UIView 本身没有被释放。 (既然我们在评论中找到了答案,不妨填写答案。)

关于ios - Core Graphics iOS 中的内存增加/泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27462642/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com