这里“接收者类型‘ 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();

The renderInContext line

[captureView.layer renderInContext:pdfContext];

generates the following error.

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

知道这是怎么回事吗?

30648 次浏览

我复制了你的问题,这就是解决问题的方法。

将 QuartzCore.Framework 添加到项目中,并将这一行添加到. m 文件中。

#import <QuartzCore/QuartzCore.h>