O que significa "Tipo de receptor 'CALayer', por exemplo, mensagem é uma declaração de encaminhamento" aqui?


119

Estou portando um bloco de código de um projeto iOS4 para o iOS5 e estou tendo alguns problemas com o ARC. O código gera um PDF a partir de uma captura de tela.

Código de geração de PDF

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

A linha renderInContext

[captureView.layer renderInContext:pdfContext];

gera o seguinte erro.

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

Alguma ideia do que está acontecendo aqui?


Só para ficar claro, captureView é um UIView?
NJones

Sim, provavelmente deveria ter adicionado isso - captureView é um UIView.
18711 Jason Jason as

Respostas:


317

Consegui duplicar o seu problema. Foi isso que o corrigiu para mim.

Adicione QuartzCore.framework ao seu projeto e esta linha ao seu arquivo .m.

#import <QuartzCore/QuartzCore.h>
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.