当我尝试通过取消注释以下功能来激活触摸移动支持时(如文档中所推荐):
///*
-(void) ccTouchMoved: (UITouch *)touch withEvent: (UIEvent *)event {
[self handleTouch: touch ofType: kCCTouchMoved];
}
//*/
我收到编译错误:
No visible @interface for 'CC3HelloWorldLayer' declares the selector 'handleTouch:ofType:'
此函数在CCLayer.h中声明,CC3layer继承该函数。
这个奇怪错误的原因是什么?
答案 0 :(得分:1)
handleTouch:ofType:
方法在CC3Layer.m
中定义为受保护的方法,需要在使用它的任何子类文件中重新声明(它没有公共可见性)。
由于疏忽,CC3HelloWorldLayer.m
文件中缺少重新声明。我将在以后的版本中解决这个问题。
在此期间,将以下内容添加到CC3HelloWorldLayer.m
文件的顶部:
@interface CC3Layer (TemplateMethods)
-(BOOL) handleTouch: (UITouch*) touch ofType: (uint) touchType;
@end
有关示例,请参阅TileLayer.m
和CC3DemoMashUpLayer.m
文件。
...比尔
答案 1 :(得分:0)
要么handleTouch:ofType:
未在CCLayer.h中声明为(公共)方法,要么CC3HelloWorldLayer类不直接或通过其父类CC3Layer从CCLayer.h继承。
你确实说两种情况都是如此,但我不能完全相信它,因为这可能是导致此错误发生的唯一两个原因。