Что означает здесь «тип получателя« CALayer », например, сообщение является предварительным объявлением»? - PullRequest
119 голосов
/ 19 октября 2011

Я портирую блок кода из проекта 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

Есть идеи, что здесь происходит?

1 Ответ

317 голосов
/ 19 октября 2011

Мне удалось продублировать вашу проблему. Это то, что исправило это для меня.

Добавьте QuartzCore.framework в свой проект, а эту строку - в свой файл .m.

#import <QuartzCore/QuartzCore.h>
...