What does "Receiver type 'CALayer' for instance message is a forward declaration" mean here?

30,633

I was able to duplicate your problem. This is what fixed it for me.

Add QuartzCore.framework to your project and this line to your .m file.

#import <QuartzCore/QuartzCore.h>
Share:
30,633
Jason George
Author by

Jason George

Updated on November 28, 2020

Comments

  • Jason George
    Jason George over 3 years

    I'm porting a block of code from an iOS4 project to iOS5 and I'm having some troubles with ARC. The code generates a PDF from a screen capture.

    PDF Generation Code

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

    The renderInContext line

    [captureView.layer renderInContext:pdfContext];

    generates the following error.

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

    Any ideas what is going on here?

    • NJones
      NJones over 12 years
      Just to be clear, captureView is a UIView?
    • Jason George
      Jason George over 12 years
      Yes, probably should have added that--captureView is a UIView.