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?


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>
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.