メニューをクリックすると、次のブロックが呼び出されます。
CCMenuItem* iconItem = [CCMenuItemSprite itemFromNormalSprite:icon
selectedSprite:icon2
block:^(id sender) {
[self buttonClickedWithUnlocked:unlocked world:world];
}];
ブロック内のメソッドにパラメーターを渡すことができます。
しかし今、私はobj-cをc++に変換しています。したがって、ブロックはサポートされていません。私は次のようなセレクターを使用する必要があります:
CCMenuItem* iconItem =
CCMenuItemSprite::itemFromNormalSprite(icon, icon2, this,
menu_selector(SomeClass::buttonClickedWithUnlockedWorld(unlocked, w)));
しかし、パラメーターを渡すことができません(セレクターではサポートされていません)ので、他の方法はありますか?
c ++を使用しない場合、セレクターのObj-cバージョンは次のとおりです。
CCMenuItem* iconItem = [CCMenuItemSprite itemFromNormalSprite:icon
selectedSprite:icon2
target: self
selector: @selector(buttonClickedWithUnlocked)
}];
それでも、@selectorにパラメータを渡すことはできません。他のアプローチはありますか?