CGPDFDocumentRelease()崩溃应用程序,错误地说已经解除分配

Bra*_*don 0 iphone core-graphics objective-c

我正在为iOS编写PDF查看器.当我初始化我的viewcontroller时,我获得了对pdf的引用,

pdf = CGPDFDocumentCreateWithURL((CFURLRef)pdfURL);
Run Code Online (Sandbox Code Playgroud)

然后我在该类的整个生命周期中使用它来获得CGPDFPageRef之类的,

CGPDFPageRef pageRef = CGPDFDocumentGetPage(pdf, docPage);
Run Code Online (Sandbox Code Playgroud)

子视图控制器使用这些页面并在dealloc'd时释放它们.但是,当我尝试释放pdf本身(使用CGPDFDocumentRelease)时,我收到以下错误:

[Not A Type release]: message sent to deallocated instance
Run Code Online (Sandbox Code Playgroud)

怎么了?这不会是一个问题,但是我的快照分析包含了CG对象和大量的分配,这些分配似乎都与pdf(单个页面)内容流相关联.

tia*_*tia 5

pageRef如果您没有保留,则不得发布.即使您保留了它,如果文档本身已取消分配,它也可能无法使用.因此,您可能需要在子视图控制器中保留页面和文档,并相应地释放它们.