Ios 将PDF文件部分加载到内存中

Ios 将PDF文件部分加载到内存中,ios,pdf,memory,core-graphics,Ios,Pdf,Memory,Core Graphics,有没有办法只部分加载(大)PDF文件?因此,假设:不要加载完整的PDF文件,只加载前5页 因为我实际上在处理大的PDF文件(30-50MB),当我调用CGPDFRetain时,整个文档都会保留在内存中 有人能帮我吗?是否可以在不将完整的PDF加载到内存的情况下从PDF中提取单个页面 有人能帮我解决那个问题吗 更新: 由于我的应用程序需要支持脱机访问,因此应该从本地存储加载PDF。 更新2:我现在尝试了不同的策略,但应用程序仍然处于内存边缘,因为我正在一步将PDF完全加载到内存中。但不知何故,它应

有没有办法只部分加载(大)PDF文件?因此,假设:不要加载完整的PDF文件,只加载前5页

因为我实际上在处理大的PDF文件(30-50MB),当我调用CGPDFRetain时,整个文档都会保留在内存中

有人能帮我吗?是否可以在不将完整的PDF加载到内存的情况下从PDF中提取单个页面

有人能帮我解决那个问题吗

更新: 由于我的应用程序需要支持脱机访问,因此应该从本地存储加载PDF。


更新2:我现在尝试了不同的策略,但应用程序仍然处于内存边缘,因为我正在一步将PDF完全加载到内存中。但不知何故,它应该可以支持大的PDF文件,不是吗?

我不知道什么是CGPDFRetain,所以我可能完全不喜欢。PDF的设计方式是,您只需要部分内容就可以正确呈现它。有一种叫做“web优化”PDF的东西,它的对象以一种特殊的方式排列。每个Web服务器都能够发送文档的字节范围,这两种机制允许部分加载PDF


您应该详细说明加载PDF的位置

不是这样的。CGPDFDocument指向您的一个磁盘空间,并在内存中缓存了部分内容,但从未缓存过整个文档

CGPDFDocument对内存太贪心会有一些问题,但是在这种情况下,只要销毁并重新创建CGPDFDocument就可以了。否则,您的应用程序可能会在CGPDFDocument分配了太多内存后崩溃