Ошибка прямого объявления CADisplayLink - PullRequest
5 голосов
/ 12 августа 2011

Хорошо, поэтому я был полностью озадачен этой ошибкой компилятора в течение нескольких часов, и проблема в том, что все прибегая к поиску, я сказал, что это должно работать так, как у меня! Я следую учебному пособию по разработке игр для iPhone, и я застрял во второй главе из-за случайной ошибки компилятора.

ВНИМАНИЕ: в настоящее время я работаю и тестирую в XCode 4.1 с iOS 5 бета

Вот объявление:

В заголовочном файле:

@interface GameController : NSObject
{
    CADisplayLink *displayLink;
}

@end

В файле .m

- (void)startGame {
    displayLink = [displayLinkWithTarget:self selector:@selector(update:)];  // THROWS ERROR
    [displayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];  // THROWS ERROR
}

- (void)update:(CADisplayLink *)sender {
    // TODO: actually do something..
}

Оба из них выдают ошибку: Receiver 'CADisplayLink' для сообщения класса является предварительным объявлением

Но все посты онлайн имеют одинаковую строку. Тип ошибки - «Ошибка автоматического подсчета ссылок».

Любая помощь очень ценится!

Ответы [ 2 ]

12 голосов
/ 12 августа 2011

Вам нужно #import <QuartzCore/QuartzCore.h> в верхней части исходного файла и связать инфраструктуру QuartzCore, если вы этого еще не сделали.

3 голосов
/ 12 августа 2011

Вы добавили инфраструктуру QuartzCore в свой проект и связанный с ней импорт в этот класс?

CADisplayLink происходит из этой среды.

...