多年来,我一直在努力为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绘图?任何帮助都将不胜感激。谢谢。
发布于 2010-10-12 23:32:59
我当前的企业项目是基于PDF阅读器的。我不发布CGPDFDocument,我可以浏览一个14页的苹果pdf,其应用程序的最大容量为30 14。我不能给你代码,但我可以指出正确的方向。
我在这里启动了一个类似的线程:Fast and Lean PDF Viewer for iPhone / iPad / iOs - tips and hints?
一些小贴士:
可以时,将任何媒体-Save到磁盘。
-Use更大的tileSizes (如果在TiledLayers上呈现)
-Note,它的图像呈现速度将比CGPDFPageRef快
-Use NSOperations提前准备页面
of time.-Recycle页面对象
当您不需要任何开放的上下文时,请立即进行-Close
接收内存警告的-on释放并重新加载DocRef
https://stackoverflow.com/questions/3915979
复制相似问题