这里的“实例消息的接收者类型'CALayer'是转发声明”是什么意思?


119

我正在将代码块从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吗?
NJones 2011年

是的,可能应该补充一点:captureView是一个UIView。
詹森·乔治

Answers:


317

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

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

#import <QuartzCore/QuartzCore.h>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.