2012-06-06 3 views
0

나는 서로 통신하기를 원하는 두 명의 자식이있는 부모가 있습니다. 어떤 이유로 그것은 작동하지 않습니다. 여기에 내가 무엇을 가지고 :Cocos2D 부모 - 자식 상호 작용 없음

부모

GameplayLayer *gameplaylayer = [GameplayLayer node]; // 1 
    [self addChild:gameplaylayer z:2 tag:1]; 

    GameplayLayer2 *gameplaylayer2 = [GameplayLayer2 node]; // 1 
    [self addChild:gameplaylayer2 z:20 tag:2]; 

아이

.H

#import "GameplayLayer2.h" 

@interface GameplayLayer : CCLayer { 
GameplayLayer2* game; 
} 

하는 .m

game = (GameplayLayer2*)[[self parent] getChildByTag:2]; 

그러나이 난에 함수를 실행하려고하면 game lik 전자 너무 [game runfun] 그것은 실행되지 않습니다. 이 호출 후

game = (GameplayLayer2*)[[self parent] getChildByTag:2]; 

게임 인스턴스가 nil

+0

실행되지 않는다는 것은 무엇을 의미합니까? – giorashc

답변

0

확인 ...

game = (GameplayLayer2*)[[self parent] getChildByTag:2]; 

GameplayLayer1의 init 함수에서 실행되고 , 그 시점까지 GameplayLayer2의 인스턴스를 설정하지 않았기 때문에 너무 일찍 실행됩니다.

1

이 라인 만약 아니라고 디버거에서