1、switch漏写break
case Panel_RoleAndSetting:
{
RoleAndSettingLayer* panel = RoleAndSettingLayer::create();
_curLayer = panel;
panel->selectTab(childPanelindex);
}
break; //①
default:
{
_curLayer=NULL;
panelID =-1;
}
break;
}
由于漏写①处的break导致执行到case Panel_RoleAndSetting时_curLayer = NULL,进而导致没有Layer被显示。
代码图片如下:
2、英文拼错,不多说直接看下图中变量是空的便知
可以看出expNum是空的,也就是没找到,最有可能的原因就是getWidgetByName后面的字符串拼错!
3、c++中switch语法问题,见下两图:
出错原因就是c++不允许在case中初始化变量,如果要初始化必须加中括号,否则再另一个case中引用了未初始化的变量就会出错,因此有这个语法规则。
4、因为下图中的this->addChild(btnNormal)导致CCControlButton::create()报错,具体机制还没看,反正以后不要把这些图片addChild就是了