什么“接收器types”CALayer“例如消息是一个前向声明”是什么意思呢?

我将一个iOS4项目的代码块移植到iOS5,并且在ARC中遇到一些麻烦。 该代码从屏幕截图生成PDF。

PDF生成代码

UIView *captureView; ... NSMutableData *pdfData = [NSMutableData data]; UIGraphicsBeginPDFContextToData(pdfData, captureView.bounds, nil); UIGraphicsBeginPDFPage(); CGContextRef pdfContext = UIGraphicsGetCurrentContext(); [captureView.layer renderInContext:pdfContext]; UIGraphicsEndPDFContext(); 

renderInContext行

 [captureView.layer renderInContext:pdfContext]; 

生成以下错误。

 Automatic Reference Counting issue Receiver type 'CALayer' for instance message is a forward declaration 

有什么想法发生在这里?

我能够复制你的问题。 这是对我来说固定的。

将QuartzCore.framework添加到您的项目中,并将此行添加到.m文件中。

 #import <QuartzCore/QuartzCore.h>