Was bedeutet hier "Empfängertyp 'CALayer', zum Beispiel Nachricht ist eine Weiterleitungsdeklaration"?

119

Ich portiere einen Codeblock aus einem iOS4-Projekt auf iOS5 und habe einige Probleme mit ARC. Der Code generiert eine PDF-Datei aus einer Bildschirmaufnahme.

PDF-Generierungscode

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

Die renderInContext-Zeile

[captureView.layer renderInContext:pdfContext];

erzeugt den folgenden Fehler.

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

Irgendwelche Ideen, was hier los ist?

Jason George
quelle
CaptureView ist ein UIView?
NJones
Ja, hätte wahrscheinlich hinzufügen sollen, dass - captureView ein UIView ist.
Jason George

Antworten:

317

Ich konnte Ihr Problem duplizieren. Das hat es für mich behoben.

Fügen Sie Ihrem Projekt QuartzCore.framework und diese Zeile Ihrer .m-Datei hinzu.

#import <QuartzCore/QuartzCore.h>
NJones
quelle