2014-10-18 2 views
0

При попытке активировать сенсорную поддержку перемещения раскомментировав следующую функцию (как рекомендовано в документации):Cocos3D handleTouch: OfType: не распознан

///* 
-(void) ccTouchMoved: (UITouch *)touch withEvent: (UIEvent *)event { 
    [self handleTouch: touch ofType: kCCTouchMoved]; 
} 
//*/ 

Я получаю ошибку компиляции:

No visible @interface for 'CC3HelloWorldLayer' declares the selector 'handleTouch:ofType:' 

enter image description here

Эта функция объявлена ​​в CCLayer.h, из которой наследуется CC3layer.

В чем причина этой странной ошибки?

ответ

1

Метод handleTouch:ofType: определен как защищенный метод и должен быть обновлен в любых файлах подкласса, которые его используют (он не имеет публичной видимости).

Из-за недосмотра отсутствует файл CC3HelloWorldLayer.m. Я исправлю это в будущей версии.

В то же время, добавьте следующую строку в верхней части файла CC3HelloWorldLayer.m:

@interface CC3Layer (TemplateMethods) 
-(BOOL) handleTouch: (UITouch*) touch ofType: (uint) touchType; 
@end 

См TileLayer.m и CC3DemoMashUpLayer.m файлы примеров.

... Bill

0

Либо handleTouch:ofType: не объявлен как (общественная) метода в CCLayer.h или класс CC3HelloWorldLayer не наследует CCLayer.h, либо непосредственно, либо через его родительский класс CC3Layer.

Вы говорите, что это так, но я не могу в это поверить, потому что это будет единственная причина, по которой эта ошибка может возникнуть.

Смежные вопросы