ccmenuitemにintセレクターを使用する

私のCCMenuItemにはセレクタに2つのメソッドがあります

        menuItem = [[CCMenuItemSprite
                         itemFromNormalSprite:[CCSprite spriteWithSpriteFrameName:@"menuItem.png"]
                         selectedSprite:[CCSprite spriteWithSpriteFrameName:@"menuItem.png"]
                         target:self
                         selector:@selector(methodName:anotherParam:)] retain];

私はCCMenuItemのintに基づいてケースを切り替えることができるようにCCMenuItemからintを送信したいと思います

このようなもの:

- (void)methodName:(id *)sender anotherParam:(int *)intNumber {
    CCMenuItemSprite *menuItem = (CCMenuItemSprite *)sender;

    switch (anotherParam) {
        case 1:
        //My case
        break;
}

私のケースを切り替えるためにCCMenuItemからintを送信するにはどうすればよいですか?

0

2 答え

このためには、 CCNode userData プロパティを使用するか、関連オブジェクトを設定することができます。

サンプル:

CCNode *myNode = [CCNode node];
myNode.userData = (void *) intVal;

// in callback
CCNode *myNode = (CCNode *) sender;
int anotherParam = (int) myNode.userData; 

To set an associated object, you would do something like this:

objc_setAssociatedObject(myObject, "anotherParam", (id) myInt, OBJC_ASSOCIATION_ASSIGN);

// in callback
int anotherParam = (int) objc_getAssociatedObject(myObject, "anotherParam");

keyは、 NSString C-string などの値を入力できるように、 void * >、 int の値など)

3
追加された
@ el.severoオブジェクトを初期化するとき。
追加された 著者 Richard J. Ross III,
@ el.severoいいえ、どこのコードでもうまくいきます。
追加された 著者 Richard J. Ross III,
をインポートしましたか?関数は obj_setAssociatedObject ではなく、 objc_setAssociatedObject です。
追加された 著者 Richard J. Ross III,
どこに objc_setAssociatedObject を配置する必要がありますか?
追加された 著者 el.severo,
initメソッドで
追加された 著者 el.severo,
C99で関数の暗黙の宣言が無効です宣言されていない識別子 'OBJC_ASSOCIATION_ASSIGN'の使用
追加された 著者 el.severo,

CCMenuItemにタグを付けるだけです:

menuItem.tag = 1;

送信者パラメータから取得します。

- (void)methodName:(id *)sender { 

    switch ([sender tag]) {
       //cases depending on tag
    }
}
2
追加された
私はそれほど多くの症例を望んでいない...それらのほんの数例
追加された 著者 el.severo,
CCMenuitemをケースにグループ化して、特定の順序で削除したい。フリストケース以外のすべてが無効になっています。タグを付けて有効にしています
追加された 著者 el.severo,
それはなぜ重要なのでしょうか?あなたは好きなだけ多くを含めることができます。
追加された 著者 FBryant87,
私は本当にあなたが残念なことを理解していないことは怖いです。それらにすべてのタグを付けると、私はその問題が何かを知ることができません。
追加された 著者 FBryant87,