为什么从cocostudio中读取到的控件setString就报错呢??

UI是使用cocostudio 1.6 制作
cocos2dx 版本3.2

std::string tempString = “cocos2dx”;
LabelAtlas* widget = (LabelAtlas*)( m_widget->getChildByName(“father”)->getChildByName(“son”) );
widget->setString(tempString);

执行到widget->setString(tempString);就会报错,断点的话是无法进入setString函数的,而且不会跳到setString函数中,弹框显示:

0x0132BBC6 处有未经处理的异常(在 heavenFarm.exe 中): 0xC0000005: 读取位置 0xCDCD0004 时发生访问冲突。

并跳到
d:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\xutility 这个文件中

实在不知道是哪里有问题…请大家帮忙

1.用dynamic_cast来转 别再用老式的C语法了。这个可以验证你取出来的东西是不是就是你想要的类型。
2.看下你取出的widget是不是为空。

哥们太感谢了,来,亲一个
根据你的思路我发现取出来的是一个TextAtlas类型,我看json文件中写的className是LabelAtlas,好坑…
我看示例程序中都是用的C语法的强转所以用来试试,平时用的都是static或者dynamic来转,呵呵.

啊呀呀,我能说这个坑了我一个晚上吗。。。:6:

widget没成功获取