CADisplayLink前向声明错误

5

好的,我已经被这个编译器错误难住了数小时,问题是所有我查找到的谷歌搜索结果说我的做法应该没问题!我正在按照 iPhone 游戏开发书籍的教程进行学习,在第二章遇到了一个随机的编译器错误。

注意:我目前在 XCode 4.1 上使用 iOS 5 beta 进行运行和测试。

以下是声明:

在头文件中:

@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' for class message is a forward declaration。

但是所有的在线帖子中,这一行代码都是完全相同的。错误类型是“自动引用计数问题”(Automatic Reference Counting Issue)。

非常感谢任何帮助!

2个回答

12

你需要在源文件顶部加入#import <QuartzCore/QuartzCore.h>,如果你还没有链接QuartzCore框架的话,请先链接它。


3

您是否已将QuartzCore框架添加到您的项目中,并将相关导入添加到此类中?

CADisplayLink来自该框架。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接