表现
类成员CCArray array,在第一次循环中,size大小正常。
经过一段时间执行,再回到循环时,从调试提示数据看,发现size已经变乱码。
在几个出现array变量的代码片断下断点,发现并没有改动这段代码的地方。
环境
cocos2d-x,使用CCARRAY_FOREACH轶代。
问题
1、在VS2012调试环境中,看到线程一直是主线程。而且代码是cocos2d-x游戏引擎,并没开启线程。所以排除多线程问题。
2、对象属于类私有成员变量,非静态,其它类没有修改权限。
3、第二次循环这个数组,是在一个schedule回调中调度,猜想可能问题出在schedule调度。十分不解。
解决
CCArray即使作为在成员变量,也需要在创建之后retain一次。