好的,我已经被这个编译器错误难住了数小时,问题是所有我查找到的谷歌搜索结果说我的做法应该没问题!我正在按照 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)。
非常感谢任何帮助!