ARC管理CGPDF类型的内存吗?

时间:2011-12-16 19:08:23

标签: ios automatic-ref-counting quartz-2d

我正在开发适用于iOS的自定义PDF库,并注意到有保留和发布CGPDFDocumentRefs andPageRefs的明确功能。 ARC是否处理这种不透明类型的保留/释放?

2 个答案:

答案 0 :(得分:3)

没有。 ARC当前没有处理除Obj-C对象(CGPDF之外没有)的任何内容的内存管理。

答案 1 :(得分:3)

我最近在PSPDFKit 1.8中转换为ARC时遇到了同样的问题。在考虑了许多技巧之后,比如将ARC用于自动释放项目或使用相关值,我最终使用了一个容器类来管理CoreFoundation-Level上的引用。

这很棘手,好像你有一个CGPDFPage并且你发布了CGPDFDocument,进一步调用CGPDFPage会崩溃,即使这个被保留了。所以要小心参考。

相关,保持许多CGPDFDocumentRefs打开并不是一个好主意 - 它们可能需要大量内存,15MB的malloc并不罕见。因此,在我的库中,我非常注意在发生内存警告时,事情会快速释放。