我正在开发几个基本上是PDF阅读器的应用程序。从iOS 6开始,由于内存不足,应用程序开始崩溃。我们的应用程序使用PDF Reader,但有一个问题与它无关。到目前为止,我们发现:
来自CGContextDrawPDFPage
的PDFS上
具体地说:在以一定的压缩方式打开PDF之后,会占用一些内存。当关闭PDF时,该内存的一部分被释放。然而,并不是全部。你可以很容易地得到内存警告,然后只需打开和关闭PDF几次就会使应用崩溃。
我也尝试过PSPDF,虽然它比PDF Reader有优势(速度),但它更贵,而且有同样的漏洞。
我已经为PDF Reader和PSPDF Kit创建了非常简单的测试项目。(您只需要在项目中添加一些PDF )
我能做什么来修复iOS 6中的泄漏吗?或者我做错了什么而实际上没有泄漏?我目前的方法是等待官方修复。
我知道这个问题在这里讨论得很激烈,但我相信我的情况有点不同。(使用ARC和测试库,在模拟器和设备上可见)
谢谢。
发布于 2013-01-15 04:53:22
经过多次尝试,我只找到了两个解决方案。然而,没有一个是完美的。
1)使用苹果的
QuickLook在使用XPC的另一个进程中运行。然而,这也意味着实际上没有自定义。(请参阅带有链接的博客文章的this问题)
2)使用 库
似乎没有涉及到CGContextDrawPDFPage,或者只是一些巧妙的优化,但FastPdfKit没有泄漏。缺点有两个--库是商业的,即使你购买了许可证,它的渲染引擎也不会显示给你。你可以使用具有所有功能的免费版本,但有一个闪屏。
由于时间紧迫,我们既不能等待官方补丁,也不能放弃当前的功能,所以我们选择了FastPdfKit。
我不认为这是一个明确的答案。图书馆适合我们的需要,但可能不是你的。而且,它也是一种商业产品。如果有更直接的解决方案,我会很乐意接受的。
https://stackoverflow.com/questions/14141423
复制相似问题