2013-06-18 44 views
-1

我在cocos2d中有一個遊戲,它有一個Mole Class和一個叫它的圖層。鼴鼠類調用此:爲什麼一個班級找不到公開申報的方法?

-(void)gotHit { 
    [self.parent processMoleHit]; 
} 

鑑於層具有這種方法聲明和實現:

-(void) processMoleHit; 


-(void) processMoleHit { 
    currentScore++; 
    [self setCurrentScore]; 
} 

爲什麼會來的cocos2d給我的警告:

實例方法-processMoleHit未找到(返回類型默認爲id)。

這裏是父母的實施,層類:

//Interface 
@interface Ch3_SavingDataPlist : SimpleTimedGameRecipe 
{ 
    NSMutableArray *moles; 
    int tagCount; 
    int moleCount; 
    CCSprite *mallet; 
    CGPoint malletPosition; 
} 

-(CCLayer*) runRecipe; 
-(void) step; 
-(void) initBackground; 
-(void) createMoleAtPosition:(CGPoint)point withZ:(float)z; 
-(void) processMoleHit; 

-(void) addHiScoresToMenu; 
-(void) loadHiScores; 
-(void) addHiScore; 
-(void) deleteHiScores; 
-(void) startNewGame; 
-(void) gameOver; 
-(void) step:(ccTime)delta; 
-(void) ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event; 

@end 
+1

Cocos2D不會因任何原因給出此警告。相反,**編譯器**會。原因可能是缺少頭文件包含。 – 2013-06-18 16:43:02

+0

是的,我的意思是xcode,而不是cocos2d。而鼴鼠確實導入圖層。 – marciokoko

+0

但是你的指針在鼴鼠鍵入是一個層,而不是一個ID或NSObject或一些這樣的? –

回答

1

您缺少類型轉換。以下列方式替換您的代碼:

-(void)gotHit { 
    [(YOUR_LAYER_CLASS)self.parent processMoleHit]; 
} 
+0

nope的Ch3_SavingDataPlist沒有工作。 – marciokoko

0

我認爲你錯過了包括類鼴鼠在Xcode中的目標成員。

要檢查它,請選中XCode左側的Mole Class .m,然後驗證XCode右側目標成員身份下的目標複選框。否則,可能會導致該問題。

+0

它是在.h – marciokoko

相關問題