【发布时间】:2011-04-24 09:05:01
【问题描述】:
多年来,我一直在努力为 iPhone/iPad 制作一个可以工作的 PDF 阅读器,但它不会停止消耗内存。似乎所有用 CGContextDrawPDFPage 绘制的页面都在内部缓存并且从未释放。
我不是唯一一个遇到这个问题的人:http://lists.apple.com/archives/quartz-dev/2010/Apr/msg00025.html
http://web.archiveorange.com/archive/v/SEb6acvPicMB2NdIjEd3
来自第一个线程的一个响应:
如果这是我想的那样,那不是泄漏,而是缓存。与其在调用之间保留 PDF 文档,不如尝试创建文档、获取并绘制页面,然后在完成后发布文档。
我试过了,它解决了这个问题,但是它太慢了。而以“正常”方式(即不为每次抽奖加载/释放 CGPDFDocument)工作良好且相当快,直到我到达文档的第 4 或第 5 页并且它崩溃。
我已经用谷歌搜索这个问题很久了:每个人都有同样的问题,但显然没有人能解决这个问题。我发现的唯一示例加载了单页 PDF,因此显然一切正常,直到您加载包含多页的文档(当然,如果该内容中有图像,它甚至更早崩溃)。这真让我抓狂。
所以问题是:您如何在您的应用程序中使用 CGPDF 处理 PDF 绘图?任何帮助将不胜感激。谢谢。
【问题讨论】: