在cocos2dx中定义数组变量,如
private:
cocos2d::CCArray *_Objs;
cocos2d::CCArray *_Enemys;
cocos2d::CCArray *_nogo;
cocos2d::CCArray *_AllRoute;
cocos2d::CCArray *_routesend;
如上,可以在构造函数里面定义初始化new CCArray,以及retain,在析构函数定义release。
Enemy::Enemy()
{
_Enemys=new cocos2d::CCArray;
_Objs=new cocos2d::CCArray;
_AllRoute=new cocos2d::CCArray;
_routesend=new cocos2d::CCArray;
_nogo=new cocos2d::CCArray;
//这里注意要retain
}在其中发现一个问题,在我选择在Parent父层传来的_Objs我接收之后
在父类调用enemy->getObjs(array);
如果在析构函数要释放掉_Objs是会出现一下图

其解决方法就是在析构函数里面注销掉_Objs,所以大家遇到这问题就在析构函数里面找原因吧
Enemy::~Enemy()
{
this->unscheduleAllSelectors();
_routesend->release();
_AllRoute->release();
//传过来没赋值的障碍物数组释放不了,是外部付值释放不了,不安全的意思
/* _Objs->release();*/
_Enemys->release();
_nogo->release();
}
本文详细介绍了在Cocos2dx中如何正确定义和管理数组变量,特别是针对传入的数组如何避免资源泄露的问题。通过实例展示了在构造函数和析构函数中初始化和释放资源的方法,确保程序的内存管理安全。
1641

被折叠的 条评论
为什么被折叠?



