继承自CCObject的对象成员变量出错或者为空的问题

时间:2023-02-11 13:40:07

写了个类想让其作为某种数据集合,还可以自动销毁,所以就直接继承了最底层的CCObject,所以并不属于视图,也就不会被addChild到显示列表里,于是就造成了接下来遇到的一个情况:其所有的成员变量被访问时数值都乱掉了。我相信这时如果其拥有其他对象的指针,那么该指针估计也会出现为空的问题。

原因就在于,在创建这个类实例的方法A结束之前,我并没有调用其retain方法,虽然我把这个对象传递给了另一个视图对象,但是根据cocos2d-x(3.0之前的版本)的内存管理机制其并不会自动增加一个引用数量,除非是视图对象被 addChild时引用数量会加一,所以,只要在这个对象创建完之后,调用一次其retain方法,那么当方法A执行完之后,此对象也不会被立马被回收掉。

当然这样做了就像CCArray一样,在不需要用到的时候要主动调用release方法,让其引用数减一,以能够被销毁。

===============================================================

今天是中秋节,开着门挺凉快的,电视里播放杭州湾钱塘潮的节目,想起了去年接爸妈到杭州游玩的情景~~