Co oznacza tutaj „Typ odbiorcy 'CALayer', na przykład komunikat jest deklaracją do przodu”?


119

Przenoszę blok kodu z projektu iOS4 na iOS5 i mam problemy z ARC. Kod generuje plik PDF ze zrzutu ekranu.

Kod generowania PDF

UIView *captureView;
...
NSMutableData *pdfData = [NSMutableData data];
UIGraphicsBeginPDFContextToData(pdfData, captureView.bounds, nil);
UIGraphicsBeginPDFPage();
CGContextRef pdfContext = UIGraphicsGetCurrentContext();
[captureView.layer renderInContext:pdfContext];
UIGraphicsEndPDFContext();

Linia renderInContext

[captureView.layer renderInContext:pdfContext];

generuje następujący błąd.

Automatic Reference Counting issue
Receiver type 'CALayer' for instance message is a forward declaration

Jakieś pomysły, co tu się dzieje?


Dla jasności, captureView to UIView?
NJones

Tak, prawdopodobnie powinienem był to dodać - captureView to UIView.
Jason George

Odpowiedzi:


316

Udało mi się skopiować twój problem. To właśnie naprawiło to dla mnie.

Dodaj QuartzCore.framework do swojego projektu i tę linię do swojego pliku .m.

#import <QuartzCore/QuartzCore.h>
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.