[cocos2d]CCSequence#02 CCCallFuncND

iPhone Game「社畜!ナカムラくん」の制作で実践していた方法です。
CCSequenceを使ってメソッドを実行するとき
前のエントリーではCCCallFuncを使っていましたが
メソッドに値を渡したいときはCCCallFuncNDを使うとよい。
使い方はこんな感じ。
下記の例だとdataに渡す値をretainしないとEXC_BAD_ACCESSになる。

id act_func0,act_func1,act_func2;
CCSequence* seq;
act_func0=[CCCallFuncND actionWithTarget:self selector:@selector(playSE:data:) data:[[NSNumber numberWithInt:15]retain]];
act_func1=[CCCallFuncND actionWithTarget:self selector:@selector(playSE:data:) data:[[NSNumber numberWithInt:13]retain]];
act_func2=[CCCallFuncND actionWithTarget:self selector:@selector(playSE:data:) data:[[NSNumber numberWithInt:14]retain]];
seq=[CCSequence actions:act_func0,[CCDelayTime actionWithDuration:0.6f],act_func1,[CCDelayTime actionWithDuration:0.9f],act_func2,nil];
[se runAction:seq];

-(void)playSE:(id)n data:(id)v{
    NSNumber* dt=(NSNumber*)v;
    int seno=[dt intValue];
    switch (seno) {
        case 0:
            [[SimpleAudioEngine sharedEngine] playEffect:@"girigiri.mp3"];
            break;
        default:
            break;
    }
    [v release];
    v=nil;
}