¿Qué significa aquí "Tipo de receptor 'CALayer', por ejemplo, el mensaje es una declaración de reenvío"?


119

Estoy transfiriendo un bloque de código de un proyecto de iOS4 a iOS5 y tengo algunos problemas con ARC. El código genera un PDF a partir de una captura de pantalla.

Código de generación de PDF

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

La línea renderInContext

[captureView.layer renderInContext:pdfContext];

genera el siguiente error.

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

Alguna idea de lo que está pasando aquí?


Para ser claros, ¿captureView es una UIView?
NJones

Sí, probablemente debería haber agregado eso: captureView es una UIView.
Jason George

Respuestas:


316

Pude duplicar tu problema. Esto es lo que me lo arregló.

Agregue QuartzCore.framework a su proyecto y esta línea a su archivo .m.

#import <QuartzCore/QuartzCore.h>
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.