2013年2月4日月曜日

【cocos2d】CCCallFuncNDのエラー

CCCallFuncNDクラスのactionWithTarget:selector:data:メソッドを使用する際のエラーについてです。

今回のエラーの詳細は以下になります。

testFunc:(NSString*)str というメソッドを作り呼ぼうとしたが、受け取る引数が、"<クラス名 = アドレス | Tag = -1>"というような感じになってしまい上手くいかなかった。

その解決方法をメモで。

解決方法

解決方法としては、呼ぶメソッドの第一引数にid型の引数を与えるということ実際に受け取りたい引数の型をvoid型にし追加することの2つです。呼ぶメソッドは以下のような感じになります。

-(void)testFunc:(id)sender withStr:(void*)str;

なんか力技感がハンパないですが・・・(笑)

コードの直し

解決方法を参考にコードを直してみます。
NSString *str = @"hello";
id func = [CCCallFuncND actionWithTarget:self 
                                                     selector:@selector(testFunc:withStr:) 
                                                           data:(void*)str];
[sprite runAction:func];

    :
    :

-(void)testFunc:(id)sender  withStr:(void*)str
{
    //do something
}

受け取る引数なぜあんな値になったかは今のところ分かりません。なんか色々見逃してる部分がありそうです・・・。とりあえずはエラーが消えたので良しとします。

参考記事

CCCallFuncND in Cocos 2D - Schogini

0 件のコメント:

コメントを投稿