在cocos2d中,我正在尝试在CocosNode的Parent上调用一个方法。该应用程序工作正常,但我得到一个'对象'可能无法响应'方法'警告。父是一个子类Cocos2d层,所以我猜我需要以某种方式转换父,但这会产生致命的错误。
方法就像这样
if(CGRectContainsPoint([newBrick boundingBox], touchedStartPoint)){
[parent showChooser];
return kEventHandled;
}
我尝试添加以下内容,但没有成功......
if(CGRectContainsPoint([newBrick boundingBox], touchedStartPoint)){
if([parent respondsToSelector:@selector(showChooser)]){
[parent showChooser];
}
return kEventHandled;
}
有什么想法吗?
答案 0 :(得分:2)
假设showChooser
是在您的子类上定义的方法,您应该只能写:
if(CGRectContainsPoint([newBrick boundingBox], touchedStartPoint)){
[(YourLayerSubclass*)parent showChooser];
return kEventHandled;
}
或者,如果你想要更安全一点:
if(CGRectContainsPoint([newBrick boundingBox], touchedStartPoint)){
if( [parent isKindOfClass:[YourLayerSubclass class]] ) {
YourLayerSubclass *subclassParent = (YourLayerSubclass*)parent;
[subclassParent showChooser];
return kEventHandled;
}
}