Objective c 调用CCMenuItem';s块的编程

Objective c 调用CCMenuItem';s块的编程,objective-c,cocos2d-iphone,Objective C,Cocos2d Iphone,我有以下项目: menuItem = [CCMenuItemImage itemWithNormalImage:@"example.png" selectedImage:@"example2.png" disabledImage:@"example3.png" block:^(id sender) { // do some important things. }]; 其中menuItem是全局实例变量 有没有办法以编程方式调用menuItem的块代码?或者我必须

我有以下项目:

    menuItem = [CCMenuItemImage itemWithNormalImage:@"example.png" selectedImage:@"example2.png" disabledImage:@"example3.png" block:^(id sender) {
        // do some important things.
    }];
其中menuItem是全局实例变量

有没有办法以编程方式调用menuItem的块代码?或者我必须在那里包装另一个函数,然后调用它?e、 g

    menuItem = [CCMenuItemImage itemWithNormalImage:@"example.png" selectedImage:@"example2.png" disabledImage:@"example3.png" block:^(id sender) {
        [self doThings];
    }];

    ...
    - (void) doThings {
      // do some important things.
    }
我更喜欢通过编程方式调用块代码。

您可以调用:

[菜单项激活]

它将调用块或回调。这种方法唯一需要注意的是,要使用vanilla框架方法,不能禁用菜单项。(必须有menuItem.isEnabled=YES)


不过,我更喜欢使用第二种方法,使用包装方法并在外部调用它,这正是因为我提到的警告。

您可以将块存储在ivar中,然后随时调用它。