2011-10-18 15 views
117

iOS4プロジェクトのコードブロックをiOS5に移植していますが、ARCに問題があります。このコードは、スクリーンキャプチャからPDFを生成します。「受信者タイプ 'CALayer'インスタンスメッセージはフォワード宣言です」とはどういう意味ですか?

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

ここで何が起こっているのですか?

+0

キャプチャビューはUIViewですか? – NJones

+0

はい、おそらくそれが追加されているはずです。 - captureViewはUIViewです。 –

答えて

317

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

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

#import <QuartzCore/QuartzCore.h> 
+6

+1優秀!私はそれを捕らえておくべきだった。ありがとう! –

+0

どのように私はまだこのエラーを作ります...ありがとう! –

+0

答えが優れている、Xcodeコンパイラのエラーメッセージもすばらしいです。解決のために+1 – rockXrock

関連する問題