2011-06-06 49 views
1

調度方法時出現錯誤。 (顯示你有多少明星獲得根據你的分數,我有addStar0 addStar1 addStar2 addStar3方法。)cocos2d計劃選擇器錯誤

[self schedule:@selector(addStar0) interval:0.2f]; 

和方法是:

-(void) addstar0 { 
    [self unschedule:_cmd]; 

    if (star > starProgress) { 
     starProgress++; 
     [self schedule:@selector(addStar1) interval:0.5f]; 
    } 
    else { 
     [self schedule:@selector(displayResult) interval:0.5f]; 
    } 

} 

錯誤消息:

Signature not found for selector - does it have the following form? -(void) name: (ccTime) dt 

我試着將我的所有方法改爲addStar1:(ccTime)增量和時間表:@selector(addStar :)間隔:0.2f,但仍然相同。 (實際上我已經使用了兩種方式來安排(有/無參數),並且它們在我上一個項目中運行良好。)

另外,有一件奇怪的事情:有時候我不能使用[self schedule:something ],但[CCScheduler sharedScheduler] schedule:something] works fine。我猜這可能是項目設置左右?

請用代碼回答。謝謝。

回答

3

您正在使用 'addStar0' 的選擇後

[self schedule:@selector(addStar0) interval:0.2f]; 

然後

-(void) addstar0 { 

應該

-(void) addStar0 { 
+0

!!!你是對的!不能相信我得到這樣一個無意義的錯誤信息,而不是像'不完整的實現'或' addstar未找到'... – OMGPOP 2011-06-06 04:04:20

+0

好拿起Kazuki – pchap10k 2011-06-08 23:52:22

0

我認爲你的錯誤實際上是對[self unschedule:_cmd];

哪裏_cmd定義?嘗試註釋該行並再次運行它。

+2

'_cmd'是特殊的隱藏變量傳遞給每個方法。它是當前方法的選擇器。 – 2011-06-06 03:36:03

+0

當然,我的日程安排:@selector(addStar0)並在addStar0本身內部調度它。 – OMGPOP 2011-06-06 03:37:24

+0

dunno where _cmd defined,但它是當前方法的選擇器。 – OMGPOP 2011-06-06 03:38:15

0

[self unschedule:_cmd]; else語句