Apa yang dimaksud dengan "Tipe penerima 'CALayer' misalnya pesan adalah deklarasi maju" di sini?


119

Saya mem-porting blok kode dari proyek iOS4 ke iOS5 dan saya mengalami beberapa masalah dengan ARC. Kode menghasilkan PDF dari tangkapan layar.

Kode Pembuatan PDF

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

Baris renderInContext

[captureView.layer renderInContext:pdfContext];

menghasilkan kesalahan berikut.

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

Ada ide apa yang terjadi di sini?


Hanya untuk memperjelas, captureView adalah UIView?
NJones

Ya, mungkin seharusnya menambahkan bahwa - captureView adalah UIView.
Jason George

Jawaban:


316

Saya bisa menduplikasi masalah Anda. Inilah yang memperbaikinya untuk saya.

Tambahkan QuartzCore.framework ke proyek Anda dan baris ini ke file .m Anda.

#import <QuartzCore/QuartzCore.h>
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.