【发布时间】:2011-03-31 20:39:56
【问题描述】:
我有一种在 iPhone 上创建 PDF 的方法。
方法是这样开始的
CGContextRef pdfContext = [self createPDFContext...]
// this line creates a CGContextRef that I will use to write the page
// if not released this will leak...
// the method continues...
// at the end I have
CGContextEndPage (pdfContext);
CGPDFContextClose(pdfContext);
CGContextRelease (pdfContext);
Xcode 抱怨最后一行。如果我包含它,它会说调用者此时不拥有的对象的引用计数的递减不正确
如果我删除它说的行:在第 X 行分配的对象的潜在泄漏其中 X 是创建上下文的行...
如果我在 createPDFContext 方法上释放上下文,它会崩溃!
这里有 createPDF 方法
-(CGContextRef) createPDFContext:(CGRect)inMediaBox path:(CFStringRef) path
{
CGContextRef myOutContext = NULL;
CFURLRef url;
CGDataConsumerRef dataConsumer;
url = CFURLCreateWithFileSystemPath (NULL, path, kCFURLPOSIXPathStyle, false);
if (url != NULL)
{
dataConsumer = CGDataConsumerCreateWithURL (url);
if (dataConsumer != NULL)
{
myOutContext = CGPDFContextCreate (dataConsumer, &inMediaBox, NULL);
CGDataConsumerRelease (dataConsumer);
}
CFRelease(url);
}
// CGContextRelease(myOutContext);
return myOutContext;
}
如何解决?
【问题讨论】:
标签: iphone