여기서 "인스턴스 메시지가 전달 선언 인 경우 수신인 유형 '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

예, 아마도 그것을 추가 했어야했습니다 .captureView는 UIView입니다.
Jason George

답변:


316

나는 당신의 문제를 복제 할 수있었습니다. 이것이 나를 위해 그것을 고친 것입니다.

프로젝트에 QuartzCore.framework를 추가하고이 줄을 .m 파일에 추가합니다.

#import <QuartzCore/QuartzCore.h>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.