ここで「インスタンスメッセージのレシーバータイプ '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です。
Jason George

回答:


317

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

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

#import <QuartzCore/QuartzCore.h>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.