对于cocos2dx加载label的噩梦

首先我承认我的水平太差,然后请各位大神来帮我解惑

今天下午眼看项目快完了,收尾阶段,手欠想把界面中的一个文字label改成动态的
原句如下:
std::string levelInfoStr = String::createWithFormat(“Level %d”, PTlevel)->string;//PTlevel是个变量
auto levelLabel = Label::createWithTTF(levelInfoStr,“fonts/ahronbd.ttf”, 30);
改成了下面形式,
char levelInfo;
sprintf(levelInfo,"newAtlasNameCountry0
%d",PTlevel-1);
_levelInfo = levelInfo;// .h文件中注册 std::string _levelInfo;
auto value_map = FileUtils::getInstance()->getValueMapFromFile(“strings.plist”);
levelInfoStr = value_map.at(_levelInfo).asString();// .h文件中注册std::string levelInfoStr;
auto levelLabel = Label::createWithTTF(levelInfoStr,“fonts/ahronbd.ttf”, 30);

噩梦开始了,在第一次运行成功后,以后的每次编译运行都不能通过,且没有错误提示,完蛋!写出来容易,但是上面的排查过程让我几乎找了一下午,原因是上面改动了还不行,所有涉及到auto levelLabel = Label::createWithTTF(levelInfoStr,“fonts/ahronbd.ttf”, 30);的层全部都不能编译通过了,好神奇啊,这个好神奇的发现可是我用了整整一下午啊,即使改回到原句std::string levelInfoStr = String::createWithFormat(“Level %d”, PTlevel)->_string;,后面只要有"fonts/ahronbd.ttf",就完蛋了,我把"fonts/ahronbd.ttf",改成了"fonts/ahronbd.arial.ttf",可以编译了,但是标签都不会显示出来,然后就是一个用最笨的方法排查的过程,最后我居然机智的发现把 auto levelLabel = Label::createWithTTF(levelInfoStr,“fonts/ahronbd.ttf”, 30);改成auto levelLabel = Label::createWithSystemFont(levelInfoStr,“fonts/ahronbd.ttf”, 30);,可以编译通过了,但是所有项目里面只要有"fonts/ahronbd.ttf",都要改,我现在都改的昏了

好吧,过程如上,到现在我想知道,我究竟错在哪了,特别是在第一次运行通过后,没有任何改动下,再次运行,无法编译,ahronbd.ttf不能用了。一下午就干了这点事,我都觉得自己脑残,求大神指点我错在哪里

更正下,中间大段的第四行是
我把"fonts/ahronbd.ttf",改成了"fonts/arial.ttf",可以编译了

追加一个问题,在初始化的时候,对于下面这句
levelInfoStr = value_map.at(_levelInfo).asString();// .h文件中注册std::string levelInfoStr;
直接改成
std::string levelInfoStr = value_map.at(_levelInfo).asString();//h中去掉
为什么会报错,无法编译呢