我将两个 CCMenuItemImage 对象添加到 CCMenuItemToggle 中,如下所示:
CCMenuItemImage *soundEnabled = [CCMenuItemImage itemWithNormalImage:@"button_sound_enabled.png"
selectedImage:@"button_sound_enabled.png"];
soundEnabled.tag = kSoundEnabled;
CCMenuItemImage *soundDisabled = [CCMenuItemImage itemWithNormalImage:@"button_sound_disabled.png"
selectedImage:@"button_sound_disabled.png"];
soundDisabled .tag = kSoundDisabled;
CCMenuItemToggle *sound = [CCMenuItemToggle itemWithItems:[NSArray arrayWithObjects:soundEnabled,soundDisabled,nil] block:^(id sender) {
CCMenuItem *item= ((CCMenuItemToggle*).sender).selectedItem;
CCLog(@"item tag: %d",item.tag);
}];
kSoundEnabled
并且kSoundDisabled
是值为 2 和 3 的枚举项。当我在创建每个 CCMenuItemImage 后记录它们的标签时,一切都很好。但是当我将它们记录在块内时,标签显示为-1061138431。
此外,当我尝试将它们记录在块之外时,只是在我层的初始化代码中更进一步,它们开始出现错误。
有人知道这里有什么问题吗?这是一个支持 Kobold2d ARC 的项目,ARC 可能是这里的问题吗?我认为这不能解释像 NSInteger 这样的简单数据类型?
我知道我可以检查sender.selectedIndex = 0
或sender.selectedIndex = 1
但我仍然想了解这里有什么问题。