0
cocos2d에서 CocosNode의 부모 메소드를 호출하려고합니다. 응용 프로그램이 잘 작동하지만 'Object'가 'method'경고에 응답하지 않을 수 있습니다. 부모는 서브 클래 싱 된 Cocos2d 레이어이므로, 부모님을 어떻게 든 던져야한다고 생각합니다.하지만 치명적인 오류가 발생합니다.'Object'가 Cocos2d의 'method'경고에 응답하지 않을 수 있습니다.
방법은 ... 나는 다음과 같은 추가 시도했지만 성공하지 한이
if(CGRectContainsPoint([newBrick boundingBox], touchedStartPoint)){
[parent showChooser];
return kEventHandled;
}
처럼
if(CGRectContainsPoint([newBrick boundingBox], touchedStartPoint)){
if([parent respondsToSelector:@selector(showChooser)]){
[parent showChooser];
}
return kEventHandled;
}
어떤 아이디어인가? 조금 더 안전 할 것인지,
if(CGRectContainsPoint([newBrick boundingBox], touchedStartPoint)){
[(YourLayerSubclass*)parent showChooser];
return kEventHandled;
}
나 : showChooser
이 서브 클래스에 정의 된 방법이라고 가정
우수한. 감사. 내가 할 수 있다면 두 번째 옵션이 더 안전한 이유는 무엇입니까? – gargantuan
당신은 명시 적으로'parent'가 그것이 있다고 가정하는 것이 아니라 당신이 기대하는 클래스의 인스턴스임을 명시 적으로 증명하고 있기 때문에. –
... 가정을 잘못하면 충돌이 발생할 수 있습니다. 오토의 문장을 끝내기 위해서. ;) – LearnCocos2D