I have a class that has two classes A and B added to it. In a method in class A, I am trying to call a class B method
Let’s assume that the parent class is debugZoneScene, debugZoneLayer is class A and tetraCounter is class B.
Here is a method from debugZoneLayer (class A):
-(void) getHeroVel {
DebugZoneScene *debugZoneScene = (DebugZoneScene*)self.parent;
[debugZoneScene.tetraCounter setTetras];
}
It calls the method, but I get the warning:
‘-[DebugZoneLayer getHeroVel]’:
‘CCNode’ may not respond to ‘-setTetras’ (Messages without a matching method signature will be assumed to return ‘id’ and accept ‘…’ as arguments.)
I’ve tried Googling this, but I couldn’t really find anything that related exactly to my problem. I am using Cocos2D, but I think this problem doesn’t have anything to do directly with that, and can still be resolved having knowledge in Objective C. Any ideas?
The compiler is telling you that it thinks that
debugZoneScene.tetraCounteris an object of typeCCNode, not whatever yourClassBis. Check howtetraCounteris declared and allocated inDebugZoneScene.You can make the warning go away by casting:
this tells the compiler that you don’t care what it thinks and you’re sure that the object is
ClassB. This doesn’t solve the actual problem, however.