117

Je transfère un bloc de code d'un projet iOS4 vers iOS5 et j'ai quelques problèmes avec ARC. Le code génère un PDF à partir d'une capture d'écran.Que signifie «message CALayer» de type récepteur par exemple, une déclaration directe «signifie ici?

PDF Génération de code

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

La ligne renderInContext

[captureView.layer renderInContext:pdfContext];

génère l'erreur suivante.

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

Une idée de ce qui se passe ici?

+0

Juste pour être clair, captureView est un UIView? – NJones

+0

Oui, probablement aurait dû ajouter que - captureView est un UIView. –

Répondre

317

J'ai réussi à dupliquer votre problème. C'est ce qui m'a arrangé.

Ajoutez QuartzCore.framework à votre projet et cette ligne à votre fichier .m.

#import <QuartzCore/QuartzCore.h> 
+6

+1 Excellent! J'aurais dû attraper celui-là. Merci! –

+0

Comment diable je fais encore cette erreur ... Merci! –

+0

la réponse est excellente, le message d'erreur du compilateur Xcode est également génial. – rockXrock