“ ผู้รับประเภท 'CALayer' สำหรับข้อความอินสแตนซ์คือการประกาศไปข้างหน้า "หมายความว่าอย่างไร


119

ฉันกำลังย้ายบล็อกโค้ดจากโปรเจ็กต์ iOS4 ไปยัง iOS5 และฉันมีปัญหากับ ARC รหัสสร้าง PDF จากการจับภาพหน้าจอ

รหัสการสร้าง PDF

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

บรรทัด renderInContext

[captureView.layer renderInContext:pdfContext];

สร้างข้อผิดพลาดต่อไปนี้

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

มีความคิดอะไรเกิดขึ้นที่นี่?


เพื่อความชัดเจน captureView เป็น UIView?
NJones

ใช่น่าจะเพิ่มว่า - captureView เป็น UIView
Jason George

คำตอบ:


316

ฉันสามารถทำซ้ำปัญหาของคุณได้ นี่คือสิ่งที่แก้ไขสำหรับฉัน

เพิ่ม QuartzCore.framework ในโปรเจ็กต์ของคุณและบรรทัดนี้ในไฟล์. m ของคุณ

#import <QuartzCore/QuartzCore.h>
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.