web-dev-qa-db-ja.com

ここで「インスタンスメッセージの受信者タイプ '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

ここで何が起こっているのでしょうか?

119
Jason George

問題を再現できました。これは私のためにそれを修正したものです。

QuartzCore.frameworkをプロジェクトに追加し、この行を.mファイルに追加します。

#import <QuartzCore/QuartzCore.h>
317
NJones