Che cosa significa "Tipo di destinatario" CALayer ", ad esempio, messaggio è una dichiarazione in avanti"?


119

Sto portando un blocco di codice da un progetto iOS4 a iOS5 e sto avendo alcuni problemi con ARC. Il codice genera un PDF da un'acquisizione dello schermo.

Codice di generazione PDF

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

La riga renderInContext

[captureView.layer renderInContext:pdfContext];

genera il seguente errore.

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

Qualche idea su cosa sta succedendo qui?


Giusto per essere chiari, captureView è un UIView?
NJones

Sì, probabilmente avrei dovuto aggiungerlo: captureView è un UIView.
Jason George

Risposte:


316

Sono riuscito a riprodurre il tuo problema. Questo è ciò che lo ha risolto per me.

Aggiungi QuartzCore.framework al tuo progetto e questa riga al tuo file .m.

#import <QuartzCore/QuartzCore.h>
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.