“接收器类型'CALayer'例如消息是前向声明”在这里是啥意思?

Posted

技术标签:

【中文标题】“接收器类型\'CALayer\'例如消息是前向声明”在这里是啥意思?【英文标题】:What does "Receiver type 'CALayer' for instance message is a forward declaration" mean here?“接收器类型'CALayer'例如消息是前向声明”在这里是什么意思? 【发布时间】:2011-12-10 10:24:01 【问题描述】:

我正在将一段代码从 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

有什么想法吗?

【问题讨论】:

明确一点,captureView 是 UIView? 是的,可能应该加上——captureView 是一个 UIView。 【参考方案1】:

我能够复制您的问题。这就是为我解决的问题。

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

#import <QuartzCore/QuartzCore.h>

【讨论】:

以上是关于“接收器类型'CALayer'例如消息是前向声明”在这里是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章