ios - Core Graphics iOS 中的内存增加/泄漏
<p><p>
我有一个 UIViewController,里面有一个自定义的 UIView。这个自定义 UIView 使用 <code>drawRect</code> 和 CoreGraphics 绘制一个 pdf。 UIViewController (pdfViewController) 被多次加载:</p>
<pre class="lang-c prettyprint-override"><code> initWithPDF:pdfs uiColor:]]];
</code></pre>
<p>自定义 UIView 如下所示:</p>
<pre class="lang-c prettyprint-override"><code>- (void)drawRect:(CGRect)rect
{
;
NSString *documentsDirectory = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSURL *url = ];
// 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);
}
</code></pre>
<p>内存没有被释放,每次加载 UIView 时,UIViewController 内存都会增加 ca。 6MB:/</p>
<p>这是内存使用情况的图片:<img src="/image/Fi2ur.png" alt="enter image description here"/> </p>
<p>任何帮助将不胜感激,请随时询问更多信息</p>
<p><strong>更新:</strong>
<code>drawRect</code> 中的 UIViews 手动内存管理非常好。由于(强)委托(delegate)引用,UIView 本身没有释放自己。再次感谢所有答案</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>听起来 UIView 本身没有被释放。 (既然我们在评论中弄清楚了,不妨填写答案。)</p></p>
<p style="font-size: 20px;">关于ios - Core Graphics iOS 中的内存增加/泄漏,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/27462642/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/27462642/
</a>
</p>
页:
[1]