ccocos2d-x 新手一枚,在用一些基本东西时总出现小概率崩溃问题,感觉是用的姿势不太对,求指点。
游戏中有一个 Vector<Player *> ,保存玩家信息,Player 类继承 Ref,由于用的地方很多,所以写成了单例的,但是又需要在一个游戏结束时,清空这个 Vector,所以在 GameScene 的悉构函数中调用了清空方法:
PlayerManager::getInstance()->clearPlayerVectro();
clearPlayerVector 方法如下:
void PlayerManager::clearPlayerVector()
{
mPlayerVector->clear();
}
但是有时候在调用这个 clear 方法的时候会崩溃,报的错误就是空引用:
EXC_BAD_ACCESS(code=1, address=0x10000…)
测试的时候发现,如果玩家数是 6 个,就很容易出现崩溃,并且每次都是在悉构第六个的时候崩溃(在悉构方法中打了 Log 看到的),如果不到 6 个概率就变得非常小,非常奇怪的问题。
补充一下,崩溃的具体位置是 CCRef.cpp (line 165)
开发环境 Mac Xcode,cocos2d-x 版本 3.10,运行环境 IOS 9.3