使用UI,修改其中label值出现程序崩溃

cocos2d::ui::Layout* qipan;//头文件中定义
//以下为cpp

qipan = static_castcocos2d::ui::Layout*(cocostudio::GUIReader::getInstance()->widgetFromJsonFile(“qipan_1.ExportJson”));
qipan->setScale((size.height - 100) / qipan->getContentSize().height);
qipan->setAnchorPoint(Point(0.5, 0.5));
qipan->setPosition(Point(size.width / 2, size.height / 2));
Layer* layer_qi = Layer::create();
layer_qi->addChild(qipan,TAG_QIPAN);
qipan->retain();
//修改qipan中的label
auto ltf = static_castcocos2d::ui::Text*(cocos2d::ui::Helper::seekWidgetByName(qipan, str2.getCString()));
//ltf中的各种值均正确
if (ltf != NULL){
char str = { 0 };
sprintf(str “%d”, data);
ltf->setText(“123”); //此行出现程序崩溃
//在此处 ltf->setVisible(false); 这个好使,正常消失。
最后定位到,转为Text的时候,_labelRenderer = 0xcdcdcdcd {_renderLabel=??? _contentDirty=??? }这个东西为空。。。应该是没有转过来。
}
图片如下:

楼主cocostudio相关请到cocostudio区提问。。。:870:

我猜~很有可能你的Label获取失败了,虽然ltf的指针不为NULL,但是有未知值,setVisible操作又刚好没有导致它的错误爆发,而setText有某个操作让它一定会爆发出来~
我经常setText报错都是因为这个原因,你看看你的是不是?~